Logo
Why OSLC? Get started Specs News Resources About Contribute Forum

Open Services for Lifecycle Collaboration

About

Case Studies

Contribute

Add to this Site

Development

Evangelise

Working Groups

Join the Conversation

Share

Specifications

News

Eclipse Lyo 2.1.2 release

Eclipse Lyo 2.1.2 has been released today! This was the first release carried out by Jad El-khoury, Jim Amsden, and yours truly. We went through a release review process even though it is not strictly needed for the service releases just in order to get acquainted with the process. This release has mainly addressed issues in the client (28 issues) and core (9 issues). I would like to thank all contributors who submitted the patches! As of now, artefacts under groupId=org.eclipse.lyo.clients and groupId=org.eclipse.lyo.oslc4j.core are available under artifactId=2.1.2. Please make sure your POM file specifies the correct repositories. The Javadoc sites are also published: http://download.eclipse.org/lyo/docs/core/2.1.2/overview-summary.html http://download.eclipse.org/lyo/docs/client/2.1.2/overview-summary.html We will be starting to work on [2.2.0 roadmap](https://bugs.eclipse.org/bugs/show_bug.cgi?id=510999 ) soon. We are looking forward to your feedback on Lyo 2.1.2 and bug reports as well patches for 2.2.0!

Eclipse Lyo 2.2.0 release

We are delighted to announce today the Lyo 2.2.0 release! The artefacts are available immediately from the Eclipse maven repository, the Lyo Toolchain Designer is available for download from the Lyo P2 update site. Main features of the 2.2.0 release are: ✨ Lyo Toolchain Designer plugin The Lyo Toolchain Designer plugin is now officially released as part of the Lyo project. Toolchain Designer allows you to graphically model a complete OSLC toolchain (including interactions between OSLC servers and clients), as well as a single server and/or client. From such models, the Lyo Code Generator can then automatically generate an almost complete OSLC4J-compliant Java web project. To model and generate your first toolchain, follow the Lyo Designer tutorial. ✨ Lyo Store Lyo Store allows you to persist OSLC resources into SPARQL triplestore of your choice, through ORM-like operations. Lyo Store can be used to provide capabilities such as caching, SPARQL queries, etc. Start by going through an introductory Lyo Store tutorial. 🔥 Maven only OSLC4J projects rely now only on Maven for configuration. If you work from source code using Eclipse, please follow the instructions for working from source. 🔧 Fixes Logging has been fixed (Bug 513477): the logging library implementation (eg slf4j-log4j12) is not included in the JARs now (also all direct uses of Log4j have been rewritten to use SLF4J API). We also work around old Jena versions that bundle logging library implementations. In order to make sure that no logging messages disappear from your applications, make sure to include at least one SLF4J logging backend in your application (and configure it if needed). If you have a Log4j configuration file in your application, you can add the drop-in dependency towards slf4j-log4j12 to have logging work as before. If you are just starting with a new application, we recommend you to try slf4j-simple, which requires zero configuration. The following bugs were fixed: Bug 517298 - Generated createResourceShape method on a Resource class produces wrong URIs Bug 494933 - Architecture resource and link type resources not possible to unmarshall Bug 517338 - GET requests to obtain RDF/XML representations of resourceShapes are no longer available Bug 518269 - Add a system property to always use RDF/XML-ABBREV for ServiceProvider resources Bug 518805 - Generated service class needs to set OSLC-Core-Version header Bug 430390 - Missing call to resolve path parameters in method-path annotation for CreationFactory annotation Bug 519818 - Update jena-core version to 2.13 in all projects Best regards, Andrew, Jad, and Jim [1]: https://repo.eclipse.org/content/repositories/lyo-releases/org/eclipse/lyo/ [2]: http://download.eclipse.org/lyo/p2/releases/2.2.0 [3]: https://wiki.eclipse.org/Lyo/ContributorsGettingStarted [4]: https://wiki.eclipse.org/Lyo/modellingandgeneration/workingfromsource_code

Eclipse Lyo 2.3.0 release

Dear Lyo users, It is my pleasure to announce on behalf of the project team that Lyo 2.3.0 has been released! 🚀 The release artefacts are available on Maven and the Eclipse plugins are available from Lyo P2 repository. Notable changes: 🔥 switch the SDK to use Jena 3.0 🔧 many improvements to Lyo Designer and code generator, including vocabulary modelling view, Turtle support out of the box and switch to user-friendly Bootstrap templates. ✨ new library for validation against constraints defined either as SHACL or OSLC Resource Shapes https://github.com/eclipse/lyo-validation 2.3.0 release page on Eclipse. Andrew, Eclipse Lyo project lead

Eclipse Lyo 2.4.0 release

Short summary Migration to Github is complete; Lyo now supports JSON-LD and Turtle; Lyo Designer generates OpenAPI/Swagger docs and adds modelling support for SHACL shapes. Lyo 2.4 is expected to be the last 2.x release. We also make a switch to a better changelog convention. ✨ Added JSON-LD support has been added to Lyo Core. Thanks to Ricardo Javier Herrera Ledesma from Koneksys for his effort! Lyo Designer now allows modelling SHACL shapes. Code generation of SHACL shapes has not been implemented yet. If this is something you need, get in touch! Thanks to Yash Khatri from SCANIA for this contribution. Lyo Designer now allows to generate OpenAPI/Swagger documentation for your OSLC Server; see the details below. Thanks to Jad El-khoury and SCANIA for this contribution. Turtle support is now turned on by default in Lyo Designer for the generated code. Support for OSLC Query has been added to Lyo Store. Thanks to Jad El-khoury and SCANIA for this contribution. OpenJDK 11 has been added to the test matrix for most repos. JDK 11 is not yet supported officially, however. A lyo repository has been added to manage all cross-cutting issues that span multiple repos. Kotlin is now used for unit tests in Lyo Core. Swagger Docs To begin generating docs yourself, head over to the page on Lyo wiki. 🔥 Changed Lyo Core now depends on Jena 3.6 (Lyo 2.3 depends on Jena 3.0.1 and that was a breaking change). This was needed to add support for JSON-LD. Lyo Designer no longer alters your identifiers. Shapes using spaces in their titles are affected. Lyo Designer now relies on Sirius 5. No breaking changes to the functionality of Lyo Designer have been introduced as a result of this change. Lyo Validation is not a part of this release in order to preserve the Type B (full IP check). Its dependencies have only passed Type A (license checks only) from the Eclipse IP team. Version 0.2.0.RC is published along this release but is not part of it. Validation has also changed its group ID as part of the process. All repos have been migrated over to Github. You can get an overview of all projects here. As part of the migration, the folder layout has been updated to use the same directory names as the artefact IDs. The following artefacts have been moved across repositories: oslc4j-registry (from Core to to Server) oslc4j-wink (from Core to to Server) oslc4j-stockquote-sample (from Core to to OSLC/lyo-samples) oslc4j-test-sample (from Core to to OSLC/lyo-samples) oslc-java-samples (from Client to OSLC/lyo-samples) oauth-test (from Client to OSLC/lyo-samples) OSLCSharepoint (from Server to to OSLC/lyo-samples) hudson-oslc-auto (from Server to to OSLC/lyo-samples) org.eclipse.lyo.samples.excel (from Server to to OSLC/lyo-samples) oslc4j-bugzilla-sample (from Docs to to OSLC/lyo-samples) trs4j-bugzilla-sample (from Docs to to OSLC/lyo-samples) Other changes Accept any kind of Sets, return HashSets · Issue 15 · eclipse/lyo.designer 👋 Deprecated HTML-related methods in the resource classes. Generator will not produce them in the next major version of Lyo. Wink support is deprecated and will be replaced with Jersey in the next major release Perl client is no longer maintained and will be removed in the next major release 🗑️ Removed No removals were done that materially affect the artefacts that are part of the release. Lyo 2.4.0 versioning adheres to Semantic Versioning 2.0.0 (but earlier 2.x releases of Lyo have introduced certain braking changes, such as the upgrade to Jena 3 in Lyo 2.3). Bug 532688 removes support for Window Name protocol for Delegated UI communication. The feature has been broken at least since 2.1.0 and contained potential security vulnerability as reported by Rahul Singh (IBM). IE11+ and all modern browsers support the Post Message protocol. NB! If you are still using Window Name protocol, get in touch (details are at the bottom). Lyo Designer 2.4 no longer supports Eclipse Neon (released on June 22, 2016) and older releases. Most of the sample code have been moved to the OSLC/lyo-samples repository. Note that the sample code has not been part of the released artefacts previously. 🐜 Fixed Core Bug 533213 - rdf:Seq deserialization in JMH contains no elements by neormx · Pull Request 14 · eclipse/lyo.core Client 529618 – Override all OslcClient#getResource(...) in OslcOAuthClient Designer When classes & property names use reserve names, RDF names get messed up too · Issue #18 · eclipse/lyo.designer AdaptorInterface palette labels should lose the prefix · Issue #19 · eclipse/lyo.designer Ambiguous methods created for the Creation Factory in the Mgr class · Issue #24 · eclipse/lyo.designer Extra semicolon inserted in the SP Info class if the instance id was customised · Issue #36 · eclipse/lyo.designer Store asking for a resource/subject with a URI that does not exist in teh store causes an exception · Issue #31 · eclipse/lyo.store Get 1st level blank nodes along with referencing resource. · Issue #24 · eclipse/lyo.store Validation Exception caused when creating an oslc-shape out of the shacl-shape class annotations - using JMH · Issue #16 · eclipse/lyo.validation Fix datatype of ShaclIn · Issue #17 · eclipse/lyo.validation 🔐 Security A potential XSS vulnerability in the OSLC Creation and Selection dialogs have been fixed in Bug 532687. Thanks to Rahul Singh from IBM for disclosure. Also, there was a potential XSS vulnerability in the broken Window Name protocol implementation; the support for it has been removed as described above. 🙋 Get in touch We value you feedback! The best place to share it is the Lyo forum on the open-services.net but a few other places work as well (though we are in process of winding most of them down)! You are also welcome to comment on Lyo 4.0 roadmap draft! Lyo no longer uses Eclipse Bugzilla for issue management. Please file any issues directly on the Github repositories. Other information Release date: 2018-11-25 (release review approved on 2018-11-21). Lyo 2.4 official release page on Eclipse Lyo 2.4 release issue on Github Lyo 2.4 roadmap

OSLC Open Project announcement

We are pleased to announce a big step forward for OSLC! The most exciting thing that we heard throughout the OSLCfest 2018 conference was that people were eager to contribute and were asking for a simpler, more streamlined way to provide contributions and make their voices heard. After exploring several alternatives, the OSLC Steering Committee decided to shift ongoing work from the OASIS Technical Committees to a new OSLC Open Project under the recently-announced OASIS Open Project program. The OSLC Open Project provides an avenue for anyone to get involved in the ongoing development of OSLC standards. And it expands the types of work that can be contributed. Within the OP, you can help build reference implementations, test suites, samples and other content to help guide the development, verification and use of these specifications by grounding them in the reality of real implementations. As an open source Open Project, people will be able to participate without having to join OASIS (though you will need to agree to the OASIS CLA when you make your first contribution). You will be able to fork the repositories, propose edits via pull requests, open or comment on issues, and subscribe to the project email list. If you are interested in going further and taking a more active role, you can request a seat on the Technical Steering Committee. If you want to take a leadership position, your company can join as a sponsor and you can join the Project Governing Board. The project is up and running now. See open-services.net, the project's website, for general information and the project's GitHub organization page for a look at the work underway. We hope that you are excited about this step as we are. If you have any questions, don't hesitate to reach out to us or, for general information on the Open Projects program, to the OP-Administrator Chet Ensign.

OSLC Open Project first spec draft publication

We finally have some great news to share! After starting the OSLC Open Project in May 2019 and having a long summer with various people being off for vacations, we have prepared the first specification for publication, updated the templates and fixed major outstanding issues. The OSLC OP Project Governing Board has approved the publication of the Change Management 2.1 PSD (Project Specification Draft) 03. This specification defines the OSLC Change Management domain, a RESTful web services interface for the management of product change requests, activities, tasks and relationships between those and related resources such as requirements, test cases, or architectural resources. To support these scenarios, this specification defines a set of HTTP-based RESTful interfaces in terms of HTTP methods: GET, POST, PUT and DELETE, HTTP response codes, content type handling and resource formats. The table of all specs has been updated to point to the newly published draft, which is available in the OASIS repository for OSLC specs: [OSLC CM 2.1 PSD 03](https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/psd03/change-mgt-spec.html). The project contributors have already submitted the next draft (for the Requirements Management 2.1 spec) for the PGB vote and PSDs for the Core and Quality management are on the way! We are waiting for your contribution!

OSLC OP publishes four new Project Specifications

OASIS is pleased to announce that OSLC Core v3.0, OSLC Query v3.0, OSLC Requirements Management v2.1, and OSLC Change Management v3.0 are now approved \OASIS Project Specifications. These join the previously announced OSLC Quality Management v2.1 as the first approved Project Specifications from the Open Projects program. OSLC Core defines the overall approach to Open Services for Lifecycle Collaboration that extend and complement the W3C Linked Data Platform. OSLC Query provides a mechanism for a client to search for RDF resources. OSLC Requirements Management supports key RESTful web service interfaces for the management of Requirements, Requirements Collections and supporting resources defined in OSLC Core. OSLC Change Management defines a RESTful web services interface for the management of product change requests, activities, tasks and relationships between those and related resources such as requirements, test cases, or architectural resources. These Project Specifications are OASIS deliverables, completed and approved by the OP's Project Governing Board and fully ready for testing and implementation. As Project Specifications, they are also now eligible to submit to OASIS as candidates for OASIS Standard. The applicable open source licenses can be found in the project's administrative repository at https://github.com/oslc-op/oslc-admin/blob/master/LICENSE.md The specifications and related files are available at: OSLC Core Version 3.0 Project Specification 01 17 September 2020 OSLC Core Version 3.0. Part 1: Overview https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/oslc-core.html https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/oslc-core.pdf OSLC Core Version 3.0. Part 2: Discovery https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/discovery.html https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/discovery.pdf OSLC Core Version 3.0. Part 3: Resource Preview https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/resource-preview.html https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/resource-preview.pdf OSLC Core Version 3.0. Part 4: Delegated Dialogs https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/dialogs.html https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/dialogs.pdf OSLC Core Version 3.0. Part 5: Attachments https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/attachments.html https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/attachments.pdf OSLC Core Version 3.0. Part 6: Resource Shape https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/resource-shape.html https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/resource-shape.pdf OSLC Core Version 3.0. Part 7: Vocabulary https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/core-vocab.html https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/core-vocab.pdf OSLC Core Version 3.0. Part 8: Constraints https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/core-shapes.html https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/core-shapes.pdf OSLC Core Vocabulary definitions file: https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/core-vocab.ttl OSLC Core Resource Shape Constraints definitions file: https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/core-shapes.ttl OSLC Query Version 3.0 Project Specification 01 01 October 2020 https://docs.oasis-open-projects.org/oslc-op/query/v3.0/ps01/oslc-query.html https://docs.oasis-open-projects.org/oslc-op/query/v3.0/ps01/oslc-query.pdf OSLC Requirements Management Version 2.1 Project Specification 01 03 September 2020 OSLC Requirements Management Version 2.1. Part 1: Specification https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/requirements-management-spec.html https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/requirements-management-spec.pdf OSLC Requirements Management Version 2.1. Part 2: Vocabulary https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/requirements-management-vocab.html https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/requirements-management-vocab.pdf OSLC Requirements Management Version 2.1. Part 3: Constraints https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/requirements-management-shapes.html https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/requirements-management-shapes.pdf Requirements Management Vocabulary definitions file: https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/requirements-management-vocab.ttl Requirements Management Resource Shape Constraints definitions file: https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/requirements-management-shapes.ttl OSLC Change Management Version 3.0 Project Specification 01 17 September 2020 OSLC Change Management Version 3.0. Part 1: Specification https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/change-mgt-spec.html https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/change-mgt-spec.pdf OSLC Change Management Version 3.0. Part 2: Vocabulary https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/change-mgt-vocab.html https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/change-mgt-vocab.pdf OSLC Change Management Version 3.0. Part 3: Constraints https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/change-mgt-shapes.html https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/change-mgt-shapes.pdf Change Management Vocabulary definitions file: https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/change-mgt-vocab.ttl Change Management Resource Shape Constraints definitions file: https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/change-mgt-shapes.ttl Distribution ZIP file For your convenience, OASIS provides complete packages of the specifications and related files in ZIP distribution files. You can download the ZIP files at: OSLC Core: https://docs.oasis-open-projects.org/oslc-op/core/v3.0/ps01/core-v3.0-ps01.zip OSLC Query: https://docs.oasis-open-projects.org/oslc-op/query/v3.0/ps01/query-v3.0-ps01.zip OSLC Requirements Management: https://docs.oasis-open-projects.org/oslc-op/rm/v2.1/ps01/rm-v2.1-ps01.zip OSLC Change Management: https://docs.oasis-open-projects.org/oslc-op/cm/v3.0/ps01/cm-v3.0-ps01.zip OASIS offers our congratulations to the participants and contributors in the Open Services for Lifecycle Collaboration Open Project on achieving this milestone.

OSLCFest 2020

The OSLCFest took place on May 18-20, 2020. There were a total of 20 presentations on OSLC, including 8 presentations by tool vendors. The recording of the talks of the OSLCFest 2020 (http://www.oslcfest.org/) can be found on YouTube: Day1: https://www.youtube.com/watch?v=FxMAyHqEay8 Day2: https://www.youtube.com/watch?v=tz35ecvqLlQ Day3: https://youtu.be/t1AJg8HAEn4

ALM-PLM Interoperability Survey

If you are interested in ALM-PLM Interoperability, please participate in this survey - ALM / PLM Interoperability and OSLC questionnaire, https://vpe-umfrage.mv.uni-kl.de/index.php/748615/lang-en . The ProSTEP iViP Association and the Institute for Virtual Product development would like to invite you to participate in this questionnaire. Please take about 10 minutes of your time to complete the questionnaire. The results will help to initiate the ALM-PLM Interoperability Workflow Forum from the ProSTEP iViP Association.

Extra, Extra, Communication User Group is Back

The Open Services Communication User Group held its kickoff call on August 13. The team is positioned to highlight integration successes and communicate the benefits of OSLC. As one participant said "Think of us as the newspaper for the city." This is a perfect analogy of our intent to be indespensible to the community we serve and relevant to the broader audience. The Communication User Group will aims to deliver value, grows our community and provides the news that you need. The group is currently working on an initial charter and has started a 2015-2016 roadmap based on various industry events. Our deliverables will capture the benefits of integration, document your success stories and assist adoption. The minutes from our first call are available here on the wiki. We can use your help! Please consider joining the Open Services Communication User Group. Joining is simple. Become a member of Open Services and select join from the Communication Work Group page. Since the CommWG is a User Group, you will not need to complete a Workgroup Participation Agreement (WPA). Since the group is part of Open-services.net, you do not need to join any other organization such as OASIS. It is easy, it is free and it is fun. Here is a few things you can do to join in the Open Services Communication: Become a Member of Open Services Sign up for the Communication User Group Add your ideas to the forum, the wiki and the mailing list. Provide feedback to the webmaster at open-services dot net. Include @OSLCNews on any integration Tweets Join us on September 8 at 11:00 EST for our next Open Services Communication User Group See you then!

Learn more about Tasktop Sync 4.3 (July 2015)

Tasktop, the leader in Software Lifecycle Integration (SLI) and creator of the Eclipse Mylyn open source tool, today announced the latest versions of its Tasktop Sync and Tasktop Data products, which add strategic new tools to its integration network and provide a vastly superior user experience. Tasktop products enable enterprises to achieve major gains by connecting everyone in the software lifecycle to create one efficient development and delivery team. With Tasktop solutions, everyone can use their various tools of choice and still collaborate in real time as if they were all working on a single platform. For more information on this release: Press Release: https://www.tasktop.com/press-releases/tasktop-sync-43 Tasktop Sync DataSheet: http://www.tasktop.com/sites/default/files/TTDatasheetSync43072815.pdf Tasktop Sync 4.3 Release Notes: http://www.tasktop.com/whats-new-sync-43

New OASIS OSLC Steering Committee Announced

The September 2015 elections for the OASIS OSLC Steering Committee have concluded -- congratulations to the new and re-elected members! Also noteworthy is that as of this election, the number of Steering Committee members increased from 7 to 9. The expanded breadth and experience that is represented in the new Steering Committee will further enhance its ability to guide and serve the OSLC Member Section and community. A warm welcome to the OSLC Steering Committee for September 2015-2016: Mats Berglund – Enterprise Architect, Ericsson Bill Chown – System Design Management, Mentor Graphics Wesley Coelho - Senior Director of Business Development, Tasktop Rainer Ersch - Senior Research Scientist, Siemens Amit Fisher - CTO, Internet of Things & Continuous Engineering, IBM Andreas Keis - Lead for Systems Engineering Processes and Platforms, Airbus Bola Rotibi - Research Director, Creative Intellect Consulting Martin Sarabura - Technical Fellow, PTC Mark Schulte - Associate Technical Fellow, Boeing As we transition to the new Steering Committee, a big thank-you to departing members John Wiegand and Dave West for their service and numerous contributions to OSLC and the Steering Committee. Now is a great time to get involved in Open Services and OASIS OSLC. Please consider joining a User Group, contribute to an OASIS technical committee, post questions on the Forum and follow us on Social media including @OSLCNews and OSLC LinkedIn Group. Thank you, Nelson Jean

OASIS OSLC Steering Committee Elections Coming Soon

Whether you live in the I/T or Systems world, software integration in heterogeneous environments can represent both a challenge (where do I even start?) and opportunity (how can I advance my environment to provide more value, deliver faster and with reduced risk?). Communities like openservices and OASIS OSLC collaboratively discuss lifecycle integration challenges and solutions that leverage open standards. Whether you're here to contribute your knowledge and experience or to learn from others, we're all in it together. If you're interested in working with other leaders in this space and helping influence the direction and expansion of OSLC, consider becoming a member of OASIS OSLC Steering Committee. Nominations and elections for positions on the Steering Committee will occur this September 2015. If you have questions in the meantime please review the Steering Committee “Best Practices” document or post questions to the OSLC General Discussion Forum. More details to come soon!

OSLC at IBM InterConnect 2015

Coming in a couple weeks is IBM's new InterConnect conference which brings together past IBM events (Innovate, Pulse, Impact) into one. These conferences often contain a number of sessions and events with OSLC connect. As you are building your agenda for the conference, I wanted to highlight my sample agenda which has some key sessions that either talking directly about OSLC activities or other topics that are key to OSLC activities. Attached you'll find a PDF of my full sample agenda, though here are some key events/sessions to be aware of: OSLC Community Engagement Event - Sat, Feb 21, time and location TBD Open Technology Summit - Sun, Feb 22, 4-6:30, Mandalay Bay (Islander Ballroom AB/FG) Building on OSLC to Provide Effective and Efficient Improvements in Design Process Communication - Mon, Feb 23, 3:30-4:30, Mandalay Bay (Breakers C) Best Practices on Implementing Integrated Software Delivery Tools - Tue, Feb 24, 3:30-4:30, Mandalay Bay (Islander Ballroom F) Cerner Corporation’s Migration from Rational RequisitePro to DOORS NG - Wed, Feb 25, 5:30-6:30, Mandalay Bay (Islander Ballroom E) Challenges and Solutions Implementing a Practical Commercial OSLC PLM Integration with PTC Windchill - Thu, Feb 26, 10:30-11:30, Mandalay Bay (Tradewinds C) Also if you want to just get together and chat, feel free to https://twitter.com/sspeiche and I'd be happy to chat, as well as help connect you to OSLC Steering Committee members or other community enthusiasts who will be in Vegas.

OLSC Survey Provides Insights into Needs for Software Integration Standards

The Open Services for Lifecycle Collaboration (OSLC) steering committee is gathering feedback from the community to help shape the future vision and mission for OSLC. As part of that effort a survey of the community members was conducted and it highlights some interesting results about the needs of this group. You can find the full results of the survey at https://www.surveymonkey.com/results/SM-2XVJT6CR/. OSLC is an open community that builds standards to solve a vexing problem: How to integrate the specialized software used by different types of software and systems development practitioners so teams and their tools can work together. For example, it’s wildly inefficient for a software tester to file defect reports in her specialized QA software and then send an email to the development team to tell them about the defect so they can manually enter it into their Agile development management tools. There is no place for this type of carrier pigeon communication in today’s world of short development cycles and continuous delivery. A note about methodology: The survey was advertised via several OSLC-related communication channels and participants self-selected the survey rather than being a random sample. This means the results represent the opinions of that group and may not necessarily be representative of the opinions of the wider community. Integration is desired for both Systems and Software The first category in the chart above is “Software Development Lifecycle (SDLC) Tools/DevOps (e.g. Agile, Testing, Requirements, Continuous Integration, etc.) with over 70% of respondents indicating that this is of interest. Systems Engineering and Product Lifecycle Management were also identified as key areas of integration for the OSLC community. While not specifically asked in this survey, supporting the collaboration between SDLC and the world of Systems and Product Lifecycle Management is a key area where OSLC can be applied. Traceability is key Nearly 80% of the participants identified “Traceability across tools” as a desired benefit of integrating tools. The second and third most common responses were “Requirements coordination with test planning” and “Developer collaboration with QA.” All three of these top responses require an element of traceability between the artifacts managed by each discipline. This is a need that OSLC’s linked data architecture is particularly well suited to address. Higher OSLC adoption is needed Like any standard, the benefits of adopting OSLC increase as more organizations adopt the standard. Before a standard is widely used, early adopters need to invest in supporting it to create the necessary critical mass. There are more than 50 known tools that can support OSLC either natively or through a third-party adapter. However, there is still a need for higher adoption and more native support for OSLC among non-IBM tools. The survey reflects this and highlights the “chicken and egg” dilemma, where higher industry adoption would be the primary motivator for the respondents’ organizations to adopt OSLC. With more than 50 tools already capable of supporting OSLC and more than 10 third-party adapter technologies, there is clearly a strong level of industry momentum. See below for more information on how to participate in the discussion on driving OSLC to the next level of adoption where “adoption” itself is no longer an impediment. Integration is needed across a broad range of tools The survey identified 55 different tools that respondents might have a need to integrate. Some 41 out of these 55 were selected by multiple people. It’s also interesting to note not only the diversity in products/vendors but also in the types of tools involved. The list includes tools for requirements, Agile development, QA/Testing, source code management, PLM, and Service Desk. Together this indicates a long tail of integration needs across a large set of tools. Again this highlights both the need and the potential benefits of a standardized integration approach. The OSLC steering committee is always looking for more feedback to help improve integration through open technology. We welcome your comments at open-services.net forums and the OSLC LinkedIn Group. Together, we can stop the insanity of carrier pigeon communication across teams and tools.

OSLC3 Update: What is it, how is it different, and why is it important?

Open Services for Life-cycle Collaboration or OSLC defines a set of standard capabilities enabling loosely coupled, open and scalable point-to-point integration between heterogeneous software development tools. OSLC allows users to work seamlessly across their preferred tools and does not require complex interchange of data between tools that may result in information redundancy and maintenance issues. The OASIS OSLC Core 3.0 Specifications represent the continued evolution of OSLC through collaborating organizations to provide the standards, APIs and tools that support integrated product, system and application lifecycle management. For the complete article see Jazz.net: OSLC3 Update: What is it, how is it different, and why is it important?

PROSTEP AG Announces OpenPDM OSLC Adapter

PROSTEP would like to announce to the OSLC community, that there is an OpenPDM OSLC Adapter which enables PLM systems to connect to the OSLC world. It offers OSLC standard services, especially for those PLM systems which don’t offer native ones. The adapter is an add-on for the OpenPDM integration framework which provides connectors to a wide range of systems, e.g.: Ansys EKM Aras Innovator Autodesk Vault Dassault SmarTeam Dassault ENOVIA V6 Dassault ENOVIA VPM V4 MSC SimManager Oracle Agile ePLM PTC Windchill SAP PLM Siemens Teamcenter Engineering Siemens Teamcenter Enterprise Siemens Teamcenter UA The OpenPDM OSLC services can be integrated in any OSLC consuming applications. The supported features are: OSLC Service Providers (OSLC Core 2.0) Jazz specific Root Service Change Request Resources: as RDF/XML as JSON (OSLC CM 2.0) Query Capabilities (OSLC Core 2.0) Selection UI (OSLC Core 2.0) OAuth Link documents managed in Backend as related resource to OSLC CM entity Provide download for documents A very successful project was performed by PROSTEP at Bombardier Transportation. The IBM tool Rational Team Concert was integrated with Teamcenter Enterprise from Siemens PLM. Rational Team Concert is used for managing the creation and delivery of documents which are needed for the authorisation of their products by European Union (EU) or local country bodies. The requirements are managed in Rational Doors Next Generation. The documents are stored in their central PDM system Teamcenter and linked to the RTC tasks. Teamcenter Enterprise doesn’t provide a native OSLC service and is now enabled by the OpenPDM OSLC Adapter to be accessed by RTC via OSLC. The project was defined, performed and finished successfully in close cooperation with IBM. For more information see http://prostep.us

Pardon our dust: updated design rolling out gradually

As I mentioned almost a year ago, I’ve been plugging away at a new look and feel for this site. I have a project on GitHub; you can open issues or discuss the direction in general; you can look at proposed sample pages. And as of today, you’ll be able to see how it looks live. I’ll be rolling out elements of it gradually. There are a number of moving parts and I want to test thoroughly. You can see what areas have the new design in this issue on GitHub. For the areas that have been updated, you should see the following: A cleaner, simpler design: I’m pretty proud of this! It should be easier to read and navigate Much faster page loading: I’ve pulled out all the stops to make sure that everything loads quickly and pages stay responsive. Speaking of… Looks good everywhere: The design is fully “responsive”, so it’ll look and work great everywhere, from your phone to your workstation. Improved accessibility for keyboard users and screen readers. I will update this post on an ongoing basis with other highlights. If you see something that looks busted, message me on Twitter, open a new issue, or email me. Some more complicated pages like the Home page will come later. Right now I do not have plans to refresh the wiki or the forums; however, they will continue to function perfectly well as-is. Thank you in advance for you patience, and I hope you enjoy the new look!

{ "@graph" : [ { "@id" : "http://open-services.net/ns/am#", "@type" : "owl:Ontology", "description" : "\n\t\t\tAll vocabulary URIs defined in the OSLC Architecture Management (AM) namespace.\n\t\t", "title" : "The OSLC Architecture Management(AM) Vocabulary", "label" : "Architecture Management(AM)", "seeAlso" : [ "http://open-services.net/ns/am/am.rdf", "http://open-services.net/bin/view/Main/AmSpecV2", "http://open-services.net/bin/view/Main/AmHome" ] }, { "@id" : "http://open-services.net/ns/am#LinkType", "@type" : "rdfs:Class", "comment" : "A locally managed resource that describes a link type predicate that might otherwise not be directly resolvable.", "isDefinedBy" : "http://open-services.net/ns/am#", "label" : "Link Type", "seeAlso" : "http://open-services.net/bin/view/Main/AmSpecV2#Resource_Link_Type_Resource_LTR" }, { "@id" : "http://open-services.net/ns/am#Resource", "@type" : "rdfs:Class", "comment" : "A generic architecture resource. A resource of this type is likely to be a model or design artifact.", "isDefinedBy" : "http://open-services.net/ns/am#", "label" : "Architecture Resource", "seeAlso" : "http://open-services.net/bin/view/Main/AmSpecV2#Resource_Architecture_Management" }, { "@id" : "http://open-services.net/ns/am/am.rdf", "nature" : "http://www.w3.org/2000/01/rdf-schema#" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "description" : { "@id" : "http://purl.org/dc/terms/description", "@type" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "nature" : { "@id" : "http://www.rddl.org/nature", "@type" : "@id" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "rddl" : "http://www.rddl.org/" } }

. . . "Architecture Management(AM)" . "\n\t\t\tAll vocabulary URIs defined in the OSLC Architecture Management (AM) namespace.\n\t\t"^^ . "The OSLC Architecture Management(AM) Vocabulary" . . . "A locally managed resource that describes a link type predicate that might otherwise not be directly resolvable." . "Link Type" . . . . "A generic architecture resource. A resource of this type is likely to be a model or design artifact." . "Architecture Resource" . . . .

The OSLC Architecture Management(AM) Vocabulary All vocabulary URIs defined in the OSLC Architecture Management (AM) namespace. Architecture Management(AM) Architecture Resource A generic architecture resource. A resource of this type is likely to be a model or design artifact. Link Type A locally managed resource that describes a link type predicate that might otherwise not be directly resolvable.

@prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix rdfs: . @prefix rddl: . a owl:Ontology ; rdfs:label "Architecture Management(AM)" ; rdfs:seeAlso , , ; dcterms:description "\n\t\t\tAll vocabulary URIs defined in the OSLC Architecture Management (AM) namespace.\n\t\t"^^rdf:XMLLiteral ; dcterms:title "The OSLC Architecture Management(AM) Vocabulary" . a rdfs:Class ; rdfs:comment "A locally managed resource that describes a link type predicate that might otherwise not be directly resolvable." ; rdfs:isDefinedBy ; rdfs:label "Link Type" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "A generic architecture resource. A resource of this type is likely to be a model or design artifact." ; rdfs:isDefinedBy ; rdfs:label "Architecture Resource" ; rdfs:seeAlso . rddl:nature rdfs: .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/asset#", "@type" : "owl:Ontology", "description" : "\n\t\t\tAll vocabulary URIs defined in the OSLC\n\t\t\tAsset Management (Asset) namespace.\n\t\t", "title" : "The OSLC Asset Management(Asset) Vocabulary\n\t\t", "label" : "Asset Management(Asset)", "seeAlso" : [ "http://open-services.net/ns/asset/asset.rdf", "http://open-services.net/bin/view/Main/AssetMgSpecificationV2", "http://open-services.net/bin/view/Main/AssetHome" ] }, { "@id" : "http://open-services.net/ns/asset#Artifact", "@type" : "rdfs:Class", "comment" : "The Artifact fragment", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "Artifact", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Artifact" }, { "@id" : "http://open-services.net/ns/asset#Asset", "@type" : "rdfs:Class", "comment" : "The Asset resource", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#artifact", "@type" : "rdf:Property", "comment" : "The multi valued list of artifacts.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "artifact", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#artifactFactory", "@type" : "rdf:Property", "comment" : "Resource URI used to post new artifacts to the asset.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "artifactFactory", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#categorization", "@type" : "rdf:Property", "comment" : "\tA categorization to classify an asset. The category schema values are \n\t\t defined by the service provider. This specification does not define the resource for this \n\t\t property, however it should contain a dcterms:title property.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "categorization", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#content", "@type" : "rdf:Property", "comment" : "The media resource reference URI (the artifact bytes).\n\t\t", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "content", "range" : "http://open-services.net/ns/asset#Artifact", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Artifact" }, { "@id" : "http://open-services.net/ns/asset#guid", "@type" : "rdf:Property", "comment" : "An identifier for the asset. Assigned by the service provider\n\t\t when a resource is created. Different versions of the same asset will \n\t\t share the same identifier.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "guid", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#identifier", "@type" : "rdf:Property", "comment" : "A unique identifier for a resource. Assigned by the service provider when \n\t\t\ta resource is created. ", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "identifier", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#manufacturer", "@type" : "rdf:Property", "comment" : "The name of the asset manufacturer.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "manufacturer", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#model", "@type" : "rdf:Property", "comment" : "The value of the asset model.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "model", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#relationshipType", "@type" : "rdf:Property", "comment" : "The type of this relationship from the perspective of the \n\t\t oslc_asset:relatedAsset resource based on values defined by the service provider.\n\t\t This specification does not define the resource for this property, however it \n\t\t should contain a dcterms:title property.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "relationshipType", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#serialNumber", "@type" : "rdf:Property", "comment" : "The serial number assigned by the asset manufacturer.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "serialNumber", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#size", "@type" : "rdf:Property", "comment" : "The size of the artifact media resource in bytes.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "size", "range" : "http://open-services.net/ns/asset#Artifact", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Artifact" }, { "@id" : "http://open-services.net/ns/asset#state", "@type" : "rdf:Property", "comment" : "Used to indicate the state of the asset based on values defined by the service provider. \n\t\tThis specification does not define the resource for this property, however it should contain a \n\t\tdcterms:title property.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "state", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#tag", "@type" : "rdf:Property", "comment" : "Specifies the asset tag value for an Asset. Asset tags are typically human \n\t\t readable labels. For hardware assets, these tags are durable, securely attached to \n\t\t equipment, and may also be readable by barcode and/or RFID.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "tag", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset#version", "@type" : "rdf:Property", "comment" : "The version of the asset. Possible values may include '1.0', \n\t\t '2.0', etc.", "isDefinedBy" : "http://open-services.net/ns/asset#", "label" : "version", "range" : "http://open-services.net/ns/asset#Asset", "seeAlso" : "http://open-services.net/bin/view/Main/AssetMgSpecificationV2#Asset" }, { "@id" : "http://open-services.net/ns/asset/asset.rdf", "nature" : "http://www.w3.org/2000/01/rdf-schema#" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "range" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#range", "@type" : "@id" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "nature" : { "@id" : "http://www.rddl.org/nature", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description", "@type" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "rddl" : "http://www.rddl.org/" } }

. . "Used to indicate the state of the asset based on values defined by the service provider. \n\t\tThis specification does not define the resource for this property, however it should contain a \n\t\tdcterms:title property." . "state" . . . . . "The size of the artifact media resource in bytes.\n\t\t" . "size" . . . . . "The type of this relationship from the perspective of the \n\t\t oslc_asset:relatedAsset resource based on values defined by the service provider.\n\t\t This specification does not define the resource for this property, however it \n\t\t should contain a dcterms:title property.\n\t\t" . "relationshipType" . . . . . "The version of the asset. Possible values may include '1.0', \n\t\t '2.0', etc." . "version" . . . . "The Asset resource" . "Asset" . . . . . "An identifier for the asset. Assigned by the service provider\n\t\t when a resource is created. Different versions of the same asset will \n\t\t share the same identifier." . "guid" . . . . . "The serial number assigned by the asset manufacturer." . "serialNumber" . . . . . "A unique identifier for a resource. Assigned by the service provider when \n\t\t\ta resource is created. " . "identifier" . . . . . "The multi valued list of artifacts.\n\t\t" . "artifact" . . . . "The Artifact fragment" . "Artifact" . . . . . "The value of the asset model." . "model" . . . . . . "\tA categorization to classify an asset. The category schema values are \n\t\t defined by the service provider. This specification does not define the resource for this \n\t\t property, however it should contain a dcterms:title property." . "categorization" . . . . . . "Asset Management(Asset)" . "\n\t\t\tAll vocabulary URIs defined in the OSLC\n\t\t\tAsset Management (Asset) namespace.\n\t\t"^^ . "The OSLC Asset Management(Asset) Vocabulary\n\t\t" . . . . "Resource URI used to post new artifacts to the asset." . "artifactFactory" . . . . . "Specifies the asset tag value for an Asset. Asset tags are typically human \n\t\t readable labels. For hardware assets, these tags are durable, securely attached to \n\t\t equipment, and may also be readable by barcode and/or RFID." . "tag" . . . . . "The media resource reference URI (the artifact bytes).\n\t\t" . "content" . . . . . "The name of the asset manufacturer." . "manufacturer" . . .

The OSLC Asset Management(Asset) Vocabulary All vocabulary URIs defined in the OSLC Asset Management (Asset) namespace. Asset Management(Asset) Asset The Asset resource Artifact The Artifact fragment identifier A unique identifier for a resource. Assigned by the service provider when a resource is created. guid An identifier for the asset. Assigned by the service provider when a resource is created. Different versions of the same asset will share the same identifier. version The version of the asset. Possible values may include '1.0', '2.0', etc. state Used to indicate the state of the asset based on values defined by the service provider. This specification does not define the resource for this property, however it should contain a dcterms:title property. categorization A categorization to classify an asset. The category schema values are defined by the service provider. This specification does not define the resource for this property, however it should contain a dcterms:title property. manufacturer The name of the asset manufacturer. model The value of the asset model. serialNumber The serial number assigned by the asset manufacturer. tag Specifies the asset tag value for an Asset. Asset tags are typically human readable labels. For hardware assets, these tags are durable, securely attached to equipment, and may also be readable by barcode and/or RFID. artifact The multi valued list of artifacts. artifactFactory Resource URI used to post new artifacts to the asset. content The media resource reference URI (the artifact bytes). size The size of the artifact media resource in bytes. relationshipType The type of this relationship from the perspective of the oslc_asset:relatedAsset resource based on values defined by the service provider. This specification does not define the resource for this property, however it should contain a dcterms:title property.

@prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix rdfs: . @prefix rddl: . a rdf:Property ; rdfs:comment "Used to indicate the state of the asset based on values defined by the service provider. \n\t\tThis specification does not define the resource for this property, however it should contain a \n\t\tdcterms:title property." ; rdfs:isDefinedBy ; rdfs:label "state" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The size of the artifact media resource in bytes.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "size" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The type of this relationship from the perspective of the \n\t\t oslc_asset:relatedAsset resource based on values defined by the service provider.\n\t\t This specification does not define the resource for this property, however it \n\t\t should contain a dcterms:title property.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "relationshipType" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The version of the asset. Possible values may include '1.0', \n\t\t '2.0', etc." ; rdfs:isDefinedBy ; rdfs:label "version" ; rdfs:range ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Asset resource" ; rdfs:isDefinedBy ; rdfs:label "Asset" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "An identifier for the asset. Assigned by the service provider\n\t\t when a resource is created. Different versions of the same asset will \n\t\t share the same identifier." ; rdfs:isDefinedBy ; rdfs:label "guid" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The serial number assigned by the asset manufacturer." ; rdfs:isDefinedBy ; rdfs:label "serialNumber" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A unique identifier for a resource. Assigned by the service provider when \n\t\t\ta resource is created. " ; rdfs:isDefinedBy ; rdfs:label "identifier" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The multi valued list of artifacts.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "artifact" ; rdfs:range ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Artifact fragment" ; rdfs:isDefinedBy ; rdfs:label "Artifact" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The value of the asset model." ; rdfs:isDefinedBy ; rdfs:label "model" ; rdfs:range ; rdfs:seeAlso . rddl:nature rdfs: . a rdf:Property ; rdfs:comment "\tA categorization to classify an asset. The category schema values are \n\t\t defined by the service provider. This specification does not define the resource for this \n\t\t property, however it should contain a dcterms:title property." ; rdfs:isDefinedBy ; rdfs:label "categorization" ; rdfs:range ; rdfs:seeAlso . a owl:Ontology ; rdfs:label "Asset Management(Asset)" ; rdfs:seeAlso , , ; dcterms:description "\n\t\t\tAll vocabulary URIs defined in the OSLC\n\t\t\tAsset Management (Asset) namespace.\n\t\t"^^rdf:XMLLiteral ; dcterms:title "The OSLC Asset Management(Asset) Vocabulary\n\t\t" . a rdf:Property ; rdfs:comment "Resource URI used to post new artifacts to the asset." ; rdfs:isDefinedBy ; rdfs:label "artifactFactory" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Specifies the asset tag value for an Asset. Asset tags are typically human \n\t\t readable labels. For hardware assets, these tags are durable, securely attached to \n\t\t equipment, and may also be readable by barcode and/or RFID." ; rdfs:isDefinedBy ; rdfs:label "tag" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The media resource reference URI (the artifact bytes).\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "content" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The name of the asset manufacturer." ; rdfs:isDefinedBy ; rdfs:label "manufacturer" ; rdfs:range ; rdfs:seeAlso .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/auto#", "@type" : "owl:Ontology", "description" : "\n All vocabulary URIs defined in the OSLC Automation namespace.\n ", "title" : "The OSLC Automation Vocabulary", "label" : "Automation", "seeAlso" : [ "http://open-services.net/ns/auto/auto.rdf", "http://open-services.net/bin/view/Main/AutoSpecificationV2", "http://open-services.net/bin/view/Main/AutomationHome" ] }, { "@id" : "http://open-services.net/ns/auto#AutomationPlan", "@type" : "rdfs:Class", "comment" : "The Automation Plan resource", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "AutomationPlan", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationPlan" }, { "@id" : "http://open-services.net/ns/auto#AutomationRequest", "@type" : "rdfs:Class", "comment" : "The Automation Request resource", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "AutomationRequest", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationRequest" }, { "@id" : "http://open-services.net/ns/auto#AutomationResult", "@type" : "rdfs:Class", "comment" : "The Automation Result resource", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "AutomationResult", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult" }, { "@id" : "http://open-services.net/ns/auto#ParameterInstance", "@type" : "rdfs:Class", "comment" : "The Automation Parameter Instance resource", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "ParameterInstance", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_ParameterInstance" }, { "@id" : "http://open-services.net/ns/auto#additionalParameter", "@type" : "rdf:Property", "comment" : "Automation Result output parameters are parameters associated with the result other than the\n\t\t oslc_auto:inputParameter resources. These could be parameters added during automation execution by the\n\t\t service provider or external agents. They could also be copies of input parameters with values changed\n\t\t during execution.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "outputParameter", "range" : "http://open-services.net/ns/auto#AutomationResult", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult" }, { "@id" : "http://open-services.net/ns/auto#canceled", "comment" : "Used to indicate that an automation request or result has been canceled.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "canceled", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#canceling", "comment" : "Used to indicate the service provider is in the process of canceling an automation request or result.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "canceling", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#complete", "comment" : "Used to indicate that an automation request or result is complete.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "complete", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#desiredState", "@type" : "rdf:Property", "comment" : "Used to indicate the desired state of the automation request based on values defined\n\t\t by the service provider. ", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "desiredState", "range" : [ "http://open-services.net/ns/auto#AutomationResult", "http://open-services.net/ns/auto#AutomationRequest" ], "seeAlso" : [ "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult", "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationRequest" ] }, { "@id" : "http://open-services.net/ns/auto#error", "comment" : "Used to indicate an automation result has completed but did not run successfully due\n\t\t to some error. This could be a timeout, automation coding error, network problem or other error\n\t\t which prevented the automation from running successfully to a pass, warning or fail verdict.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "error", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#executesAutomationPlan", "@type" : "rdf:Property", "comment" : "Automation Plan run by the Automation Request. It is likely that the target resource will be an\n\t\t oslc_auto:AutomationPlan but that is not necessarily the case. ", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "executesAutomationPlan", "range" : "http://open-services.net/ns/auto#AutomationRequest", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationRequest" }, { "@id" : "http://open-services.net/ns/auto#fail", "comment" : "Used to indicate an automation result represents a failed execution.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "fail", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#hasContribution", "@type" : "rdf:Property", "comment" : "A result contribution associated with this automation result. It is recommended that the\n\t\t contribution be an inline resource which can be retrieved with the automation result. The recommended\n\t\t attributes beyond the contribution itself are dcterms:title, dcterms:description and dcterms:type to\n\t\t provide a description of the contribution which would be appropriate for display in a simple UI for \n\t\t an automation result.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "hasContribution", "range" : "http://open-services.net/ns/auto#AutomationResult", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult" }, { "@id" : "http://open-services.net/ns/auto#inProgress", "comment" : "Used to indicate an automation request or result is active in the service provider.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "inProgress", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#initialParameter", "@type" : "rdf:Property", "comment" : "Parameters provided when Automation Requests are created. These include parameters provided \n\t\t by the creator of the Automation Request (whether by delegated UI or HTTP POST) and MAY include \n\t\t additional parameters added by the service provider during Automation Request creation. See the \n\t\t definition of the oslc_auto:parameterDefinition attribute of the Automation Plan for additional guidance \n\t\t on determining which parameters are required. Creators of Automation Requests MAY provide parameters beyond \n\t\t those defined in the Automation Plan without guarantee the service provider will recognize or honor them. \n\t\t It is expected that this attribute is write-able on Automation Request creation and read-only thereafter.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "inputParameter", "range" : [ "http://open-services.net/ns/auto#AutomationResult", "http://open-services.net/ns/auto#AutomationRequest" ], "seeAlso" : [ "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult", "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationRequest" ] }, { "@id" : "http://open-services.net/ns/auto#new", "comment" : "Used to indicate an automation request or result has just been created in the service\n\t\t provider and has not yet been acted upon.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "new", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#parameterDefinition", "@type" : "rdf:Property", "comment" : "The definition of a parameter for this Automation Plan. parameterDefinitions are either\n\t\t a local (inline) or referenced resource and use the attributes (the range) of the oslc:Property\n\t\t resource with one exception. When used in the context of an oslc_auto:parameterDefinition, the \n\t\t cardinality of oslc:propertyDefinition becomes zero-or-one instead of exactly-one. Automation consumers \n\t\t creating Automation Requests MUST use the oslc:occurs attribute of the parameterDefinition, if \n\t\t present, to determine if a given parameter is required when creating the Automation Request. \n\t\t If the oslc:occurs attribute indicates the parameter is required (exactly-one or one-or-more), the \n\t\t service provider must guarantee the named parameter will be present in the Automation Result either \n\t\t as an oslc_auto:inputParmeter when unmodified during execution, or as an oslc_auto:outputParameter \n\t\t when modified during execution.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "parameterDefinition", "range" : "http://open-services.net/ns/auto#AutomationPlan", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationPlan" }, { "@id" : "http://open-services.net/ns/auto#pass", "comment" : "Used to indicate an automation result represents a successful execution.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "pass", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#producedByAutomationRequest", "@type" : "rdf:Property", "comment" : "Automation Request which produced the Automation Result. It is likely that the target resource\n\t\t will be an oslc_auto:AutomationResult but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "producedByAutomationRequest", "range" : "http://open-services.net/ns/auto#AutomationResult", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult" }, { "@id" : "http://open-services.net/ns/auto#queued", "comment" : "Primarily used to indicate an automation request or result is queued for additional\n\t\t actions by the service provider.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "queued", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#reportsOnAutomationPlan", "@type" : "rdf:Property", "comment" : "Automation Plan which the Automation Result reports on. It is likely that the target resource\n\t\t will be an oslc_auto:AutomationPlan but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "reportsOnAutomationPlan", "range" : "http://open-services.net/ns/auto#AutomationResult", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult" }, { "@id" : "http://open-services.net/ns/auto#state", "@type" : "rdf:Property", "comment" : "Used to indicate the state of the automation request based on values defined\n\t\t by the service provider. Most often a read-only property. It is expected that this will\n\t\t be a resource reference to a definition of a valid automation request state on the service provider.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "state", "range" : [ "http://open-services.net/ns/auto#AutomationResult", "http://open-services.net/ns/auto#AutomationRequest" ], "seeAlso" : [ "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult", "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationRequest" ] }, { "@id" : "http://open-services.net/ns/auto#unavailable", "comment" : "Used to indicate an automation result is in a state where a final verdict such as\n\t\t oslc:auto_pass or oslc_auto:fail is not yet available. Usually used when the result is in a\n\t\t state other than oslc_auto:complete.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "unavailable", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto#verdict", "@type" : "rdf:Property", "comment" : "Used to indicate the verdict of the automation result based on values defined by the service\n\t\t provider. Most often a read-only property. It is expected that this will be a resource reference to a \n\t\t definition of a valid automation result verdict on the service provider.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "verdict", "range" : "http://open-services.net/ns/auto#AutomationResult", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2#Resource_AutomationResult" }, { "@id" : "http://open-services.net/ns/auto#warning", "comment" : "Used to indicate an automation result represents an execution which encountered conditions\n\t\t which prevented successful execution but did not result in a failed execution.", "isDefinedBy" : "http://open-services.net/ns/auto#", "label" : "warning", "seeAlso" : "http://open-services.net/bin/view/Main/AutoSpecificationV2" }, { "@id" : "http://open-services.net/ns/auto/auto.rdf", "nature" : "http://www.w3.org/2000/01/rdf-schema#" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "range" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#range", "@type" : "@id" }, "nature" : { "@id" : "http://www.rddl.org/nature", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description", "@type" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "rddl" : "http://www.rddl.org/" } }

. "Primarily used to indicate an automation request or result is queued for additional\n\t\t actions by the service provider." . "queued" . . . "Used to indicate an automation result represents a successful execution." . "pass" . . . "Used to indicate that an automation request or result has been canceled." . "canceled" . . . . . . "Used to indicate the state of the automation request based on values defined\n\t\t by the service provider. Most often a read-only property. It is expected that this will\n\t\t be a resource reference to a definition of a valid automation request state on the service provider." . "state" . . . . "The Automation Plan resource" . "AutomationPlan" . . . . . . . "Parameters provided when Automation Requests are created. These include parameters provided \n\t\t by the creator of the Automation Request (whether by delegated UI or HTTP POST) and MAY include \n\t\t additional parameters added by the service provider during Automation Request creation. See the \n\t\t definition of the oslc_auto:parameterDefinition attribute of the Automation Plan for additional guidance \n\t\t on determining which parameters are required. Creators of Automation Requests MAY provide parameters beyond \n\t\t those defined in the Automation Plan without guarantee the service provider will recognize or honor them. \n\t\t It is expected that this attribute is write-able on Automation Request creation and read-only thereafter." . "inputParameter" . . . . "Used to indicate that an automation request or result is complete." . "complete" . . . . "The definition of a parameter for this Automation Plan. parameterDefinitions are either\n\t\t a local (inline) or referenced resource and use the attributes (the range) of the oslc:Property\n\t\t resource with one exception. When used in the context of an oslc_auto:parameterDefinition, the \n\t\t cardinality of oslc:propertyDefinition becomes zero-or-one instead of exactly-one. Automation consumers \n\t\t creating Automation Requests MUST use the oslc:occurs attribute of the parameterDefinition, if \n\t\t present, to determine if a given parameter is required when creating the Automation Request. \n\t\t If the oslc:occurs attribute indicates the parameter is required (exactly-one or one-or-more), the \n\t\t service provider must guarantee the named parameter will be present in the Automation Result either \n\t\t as an oslc_auto:inputParmeter when unmodified during execution, or as an oslc_auto:outputParameter \n\t\t when modified during execution." . "parameterDefinition" . . . . . "A result contribution associated with this automation result. It is recommended that the\n\t\t contribution be an inline resource which can be retrieved with the automation result. The recommended\n\t\t attributes beyond the contribution itself are dcterms:title, dcterms:description and dcterms:type to\n\t\t provide a description of the contribution which would be appropriate for display in a simple UI for \n\t\t an automation result." . "hasContribution" . . . . "The Automation Result resource" . "AutomationResult" . . . . . . . . "Used to indicate the desired state of the automation request based on values defined\n\t\t by the service provider. " . "desiredState" . . . . "The Automation Parameter Instance resource" . "ParameterInstance" . . . . "Used to indicate the service provider is in the process of canceling an automation request or result." . "canceling" . . . "Used to indicate an automation request or result has just been created in the service\n\t\t provider and has not yet been acted upon." . "new" . . . . "Used to indicate the verdict of the automation result based on values defined by the service\n\t\t provider. Most often a read-only property. It is expected that this will be a resource reference to a \n\t\t definition of a valid automation result verdict on the service provider." . "verdict" . . . . . "Automation Request which produced the Automation Result. It is likely that the target resource\n\t\t will be an oslc_auto:AutomationResult but that is not necessarily the case." . "producedByAutomationRequest" . . . . "Used to indicate an automation result has completed but did not run successfully due\n\t\t to some error. This could be a timeout, automation coding error, network problem or other error\n\t\t which prevented the automation from running successfully to a pass, warning or fail verdict." . "error" . . . "Used to indicate an automation result represents a failed execution." . "fail" . . . "Used to indicate an automation result is in a state where a final verdict such as\n\t\t oslc:auto_pass or oslc_auto:fail is not yet available. Usually used when the result is in a\n\t\t state other than oslc_auto:complete." . "unavailable" . . . "The Automation Request resource" . "AutomationRequest" . . . . . . "Automation" . "\n All vocabulary URIs defined in the OSLC Automation namespace.\n "^^ . "The OSLC Automation Vocabulary" . . . . "Automation Plan which the Automation Result reports on. It is likely that the target resource\n\t\t will be an oslc_auto:AutomationPlan but that is not necessarily the case." . "reportsOnAutomationPlan" . . . . "Used to indicate an automation request or result is active in the service provider." . "inProgress" . . . . "Automation Result output parameters are parameters associated with the result other than the\n\t\t oslc_auto:inputParameter resources. These could be parameters added during automation execution by the\n\t\t service provider or external agents. They could also be copies of input parameters with values changed\n\t\t during execution." . "outputParameter" . . . . . "Automation Plan run by the Automation Request. It is likely that the target resource will be an\n\t\t oslc_auto:AutomationPlan but that is not necessarily the case. " . "executesAutomationPlan" . . . . "Used to indicate an automation result represents an execution which encountered conditions\n\t\t which prevented successful execution but did not result in a failed execution." . "warning" . .

The OSLC Automation Vocabulary All vocabulary URIs defined in the OSLC Automation namespace. Automation AutomationPlan The Automation Plan resource AutomationRequest The Automation Request resource AutomationResult The Automation Result resource ParameterInstance The Automation Parameter Instance resource parameterDefinition The definition of a parameter for this Automation Plan. parameterDefinitions are either a local (inline) or referenced resource and use the attributes (the range) of the oslc:Property resource with one exception. When used in the context of an oslc_auto:parameterDefinition, the cardinality of oslc:propertyDefinition becomes zero-or-one instead of exactly-one. Automation consumers creating Automation Requests MUST use the oslc:occurs attribute of the parameterDefinition, if present, to determine if a given parameter is required when creating the Automation Request. If the oslc:occurs attribute indicates the parameter is required (exactly-one or one-or-more), the service provider must guarantee the named parameter will be present in the Automation Result either as an oslc_auto:inputParmeter when unmodified during execution, or as an oslc_auto:outputParameter when modified during execution. inputParameter Parameters provided when Automation Requests are created. These include parameters provided by the creator of the Automation Request (whether by delegated UI or HTTP POST) and MAY include additional parameters added by the service provider during Automation Request creation. See the definition of the oslc_auto:parameterDefinition attribute of the Automation Plan for additional guidance on determining which parameters are required. Creators of Automation Requests MAY provide parameters beyond those defined in the Automation Plan without guarantee the service provider will recognize or honor them. It is expected that this attribute is write-able on Automation Request creation and read-only thereafter. state Used to indicate the state of the automation request based on values defined by the service provider. Most often a read-only property. It is expected that this will be a resource reference to a definition of a valid automation request state on the service provider. desiredState Used to indicate the desired state of the automation request based on values defined by the service provider. executesAutomationPlan Automation Plan run by the Automation Request. It is likely that the target resource will be an oslc_auto:AutomationPlan but that is not necessarily the case. verdict Used to indicate the verdict of the automation result based on values defined by the service provider. Most often a read-only property. It is expected that this will be a resource reference to a definition of a valid automation result verdict on the service provider. hasContribution A result contribution associated with this automation result. It is recommended that the contribution be an inline resource which can be retrieved with the automation result. The recommended attributes beyond the contribution itself are dcterms:title, dcterms:description and dcterms:type to provide a description of the contribution which would be appropriate for display in a simple UI for an automation result. outputParameter Automation Result output parameters are parameters associated with the result other than the oslc_auto:inputParameter resources. These could be parameters added during automation execution by the service provider or external agents. They could also be copies of input parameters with values changed during execution. producedByAutomationRequest Automation Request which produced the Automation Result. It is likely that the target resource will be an oslc_auto:AutomationResult but that is not necessarily the case. reportsOnAutomationPlan Automation Plan which the Automation Result reports on. It is likely that the target resource will be an oslc_auto:AutomationPlan but that is not necessarily the case. pass Used to indicate an automation result represents a successful execution. warning Used to indicate an automation result represents an execution which encountered conditions which prevented successful execution but did not result in a failed execution. fail Used to indicate an automation result represents a failed execution. error Used to indicate an automation result has completed but did not run successfully due to some error. This could be a timeout, automation coding error, network problem or other error which prevented the automation from running successfully to a pass, warning or fail verdict. unavailable Used to indicate an automation result is in a state where a final verdict such as oslc:auto_pass or oslc_auto:fail is not yet available. Usually used when the result is in a state other than oslc_auto:complete. new Used to indicate an automation request or result has just been created in the service provider and has not yet been acted upon. queued Primarily used to indicate an automation request or result is queued for additional actions by the service provider. inProgress Used to indicate an automation request or result is active in the service provider. canceling Used to indicate the service provider is in the process of canceling an automation request or result. canceled Used to indicate that an automation request or result has been canceled. complete Used to indicate that an automation request or result is complete.

@prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix rdfs: . @prefix rddl: . rdfs:comment "Primarily used to indicate an automation request or result is queued for additional\n\t\t actions by the service provider." ; rdfs:isDefinedBy ; rdfs:label "queued" ; rdfs:seeAlso . rdfs:comment "Used to indicate an automation result represents a successful execution." ; rdfs:isDefinedBy ; rdfs:label "pass" ; rdfs:seeAlso . rdfs:comment "Used to indicate that an automation request or result has been canceled." ; rdfs:isDefinedBy ; rdfs:label "canceled" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Used to indicate the state of the automation request based on values defined\n\t\t by the service provider. Most often a read-only property. It is expected that this will\n\t\t be a resource reference to a definition of a valid automation request state on the service provider." ; rdfs:isDefinedBy ; rdfs:label "state" ; rdfs:range , ; rdfs:seeAlso , . a rdfs:Class ; rdfs:comment "The Automation Plan resource" ; rdfs:isDefinedBy ; rdfs:label "AutomationPlan" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Parameters provided when Automation Requests are created. These include parameters provided \n\t\t by the creator of the Automation Request (whether by delegated UI or HTTP POST) and MAY include \n\t\t additional parameters added by the service provider during Automation Request creation. See the \n\t\t definition of the oslc_auto:parameterDefinition attribute of the Automation Plan for additional guidance \n\t\t on determining which parameters are required. Creators of Automation Requests MAY provide parameters beyond \n\t\t those defined in the Automation Plan without guarantee the service provider will recognize or honor them. \n\t\t It is expected that this attribute is write-able on Automation Request creation and read-only thereafter." ; rdfs:isDefinedBy ; rdfs:label "inputParameter" ; rdfs:range , ; rdfs:seeAlso , . rdfs:comment "Used to indicate that an automation request or result is complete." ; rdfs:isDefinedBy ; rdfs:label "complete" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The definition of a parameter for this Automation Plan. parameterDefinitions are either\n\t\t a local (inline) or referenced resource and use the attributes (the range) of the oslc:Property\n\t\t resource with one exception. When used in the context of an oslc_auto:parameterDefinition, the \n\t\t cardinality of oslc:propertyDefinition becomes zero-or-one instead of exactly-one. Automation consumers \n\t\t creating Automation Requests MUST use the oslc:occurs attribute of the parameterDefinition, if \n\t\t present, to determine if a given parameter is required when creating the Automation Request. \n\t\t If the oslc:occurs attribute indicates the parameter is required (exactly-one or one-or-more), the \n\t\t service provider must guarantee the named parameter will be present in the Automation Result either \n\t\t as an oslc_auto:inputParmeter when unmodified during execution, or as an oslc_auto:outputParameter \n\t\t when modified during execution." ; rdfs:isDefinedBy ; rdfs:label "parameterDefinition" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A result contribution associated with this automation result. It is recommended that the\n\t\t contribution be an inline resource which can be retrieved with the automation result. The recommended\n\t\t attributes beyond the contribution itself are dcterms:title, dcterms:description and dcterms:type to\n\t\t provide a description of the contribution which would be appropriate for display in a simple UI for \n\t\t an automation result." ; rdfs:isDefinedBy ; rdfs:label "hasContribution" ; rdfs:range ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Automation Result resource" ; rdfs:isDefinedBy ; rdfs:label "AutomationResult" ; rdfs:seeAlso . rddl:nature rdfs: . a rdf:Property ; rdfs:comment "Used to indicate the desired state of the automation request based on values defined\n\t\t by the service provider. " ; rdfs:isDefinedBy ; rdfs:label "desiredState" ; rdfs:range , ; rdfs:seeAlso , . a rdfs:Class ; rdfs:comment "The Automation Parameter Instance resource" ; rdfs:isDefinedBy ; rdfs:label "ParameterInstance" ; rdfs:seeAlso . rdfs:comment "Used to indicate the service provider is in the process of canceling an automation request or result." ; rdfs:isDefinedBy ; rdfs:label "canceling" ; rdfs:seeAlso . rdfs:comment "Used to indicate an automation request or result has just been created in the service\n\t\t provider and has not yet been acted upon." ; rdfs:isDefinedBy ; rdfs:label "new" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Used to indicate the verdict of the automation result based on values defined by the service\n\t\t provider. Most often a read-only property. It is expected that this will be a resource reference to a \n\t\t definition of a valid automation result verdict on the service provider." ; rdfs:isDefinedBy ; rdfs:label "verdict" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Automation Request which produced the Automation Result. It is likely that the target resource\n\t\t will be an oslc_auto:AutomationResult but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "producedByAutomationRequest" ; rdfs:range ; rdfs:seeAlso . rdfs:comment "Used to indicate an automation result has completed but did not run successfully due\n\t\t to some error. This could be a timeout, automation coding error, network problem or other error\n\t\t which prevented the automation from running successfully to a pass, warning or fail verdict." ; rdfs:isDefinedBy ; rdfs:label "error" ; rdfs:seeAlso . rdfs:comment "Used to indicate an automation result represents a failed execution." ; rdfs:isDefinedBy ; rdfs:label "fail" ; rdfs:seeAlso . rdfs:comment "Used to indicate an automation result is in a state where a final verdict such as\n\t\t oslc:auto_pass or oslc_auto:fail is not yet available. Usually used when the result is in a\n\t\t state other than oslc_auto:complete." ; rdfs:isDefinedBy ; rdfs:label "unavailable" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Automation Request resource" ; rdfs:isDefinedBy ; rdfs:label "AutomationRequest" ; rdfs:seeAlso . a owl:Ontology ; rdfs:label "Automation" ; rdfs:seeAlso , , ; dcterms:description "\n All vocabulary URIs defined in the OSLC Automation namespace.\n "^^rdf:XMLLiteral ; dcterms:title "The OSLC Automation Vocabulary" . a rdf:Property ; rdfs:comment "Automation Plan which the Automation Result reports on. It is likely that the target resource\n\t\t will be an oslc_auto:AutomationPlan but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "reportsOnAutomationPlan" ; rdfs:range ; rdfs:seeAlso . rdfs:comment "Used to indicate an automation request or result is active in the service provider." ; rdfs:isDefinedBy ; rdfs:label "inProgress" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Automation Result output parameters are parameters associated with the result other than the\n\t\t oslc_auto:inputParameter resources. These could be parameters added during automation execution by the\n\t\t service provider or external agents. They could also be copies of input parameters with values changed\n\t\t during execution." ; rdfs:isDefinedBy ; rdfs:label "outputParameter" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Automation Plan run by the Automation Request. It is likely that the target resource will be an\n\t\t oslc_auto:AutomationPlan but that is not necessarily the case. " ; rdfs:isDefinedBy ; rdfs:label "executesAutomationPlan" ; rdfs:range ; rdfs:seeAlso . rdfs:comment "Used to indicate an automation result represents an execution which encountered conditions\n\t\t which prevented successful execution but did not result in a failed execution." ; rdfs:isDefinedBy ; rdfs:label "warning" ; rdfs:seeAlso .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/basicProfile#", "@type" : "owl:Ontology", "description" : "\n\t\t\tAll vocabulary URIs defined in the Linked Data Basic Profile (LDBP) namespace.\n\t\t", "title" : "The Linked Data Basic Profile (LDBP) Vocabulary\n\t\t", "label" : "Linked Data Basic Profile (LDBP)", "seeAlso" : [ "http://open-services.net/ns/basicProfile/ldbp.rdf", "http://www.ibm.com/developerworks/rational/library/basic-profile-linked-data/", "http://www.w3.org/2011/09/LinkedData/" ] }, { "@id" : "http://open-services.net/ns/basicProfile#Container", "@type" : "rdfs:Class", "comment" : "A Basic Profile Resource (BPR) that also conforms to additional patterns \n\t\tand conventions in this document for managing membership.", "isDefinedBy" : "http://open-services.net/ns/basicProfile#", "label" : "Container" }, { "@id" : "http://open-services.net/ns/basicProfile#Page", "@type" : "rdfs:Class", "comment" : "A resource that represents a limited set of members of a Basic Profile Container.", "isDefinedBy" : "http://open-services.net/ns/basicProfile#", "label" : "Page" }, { "@id" : "http://open-services.net/ns/basicProfile#containerSortPredicates", "@type" : "rdf:Property", "comment" : "List of predicates that indicate the ascending order of the members in a page.\n\t\t", "domain" : "http://open-services.net/ns/basicProfile#Page", "isDefinedBy" : "http://open-services.net/ns/basicProfile#", "label" : "containerSortPredicates", "range" : "rdf:List" }, { "@id" : "http://open-services.net/ns/basicProfile#membershipPredicate", "@type" : "rdf:Property", "comment" : "Indicates which predicate of the container should be used to determine the membership.\n\t\t", "domain" : "http://open-services.net/ns/basicProfile#Container", "isDefinedBy" : "http://open-services.net/ns/basicProfile#", "label" : "membershipPredicate", "range" : "rdf:Property" }, { "@id" : "http://open-services.net/ns/basicProfile#membershipSubject", "@type" : "rdf:Property", "comment" : "Indicates which resource is the subject for the members of the container.\n\t\t", "domain" : "http://open-services.net/ns/basicProfile#Container", "isDefinedBy" : "http://open-services.net/ns/basicProfile#", "label" : "membershipSubject", "range" : "rdf:Property" }, { "@id" : "http://open-services.net/ns/basicProfile#nextPage", "@type" : "rdf:Property", "comment" : "From a known page, how to indicate the next or last page as rdf:nil.\n\t\t", "domain" : "http://open-services.net/ns/basicProfile#Page", "isDefinedBy" : "http://open-services.net/ns/basicProfile#", "label" : "nextPage", "range" : "rdfs:Resource" }, { "@id" : "http://open-services.net/ns/basicProfile#pageOf", "@type" : "rdf:Property", "comment" : "Associated a page with its container.", "domain" : "http://open-services.net/ns/basicProfile#Page", "isDefinedBy" : "http://open-services.net/ns/basicProfile#", "label" : "pageOf", "range" : "http://open-services.net/ns/basicProfile#Container" }, { "@id" : "http://open-services.net/ns/basicProfile/ldbp.rdf", "nature" : "http://www.w3.org/2000/01/rdf-schema#" } ], "@context" : { "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "nature" : { "@id" : "http://www.rddl.org/nature", "@type" : "@id" }, "range" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#range", "@type" : "@id" }, "domain" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#domain", "@type" : "@id" }, "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description", "@type" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "rddl" : "http://www.rddl.org/" } }

"A resource that represents a limited set of members of a Basic Profile Container." . "Page" . . . . . . "Associated a page with its container." . "pageOf" . . . . . "Indicates which predicate of the container should be used to determine the membership.\n\t\t" . "membershipPredicate" . . . "A Basic Profile Resource (BPR) that also conforms to additional patterns \n\t\tand conventions in this document for managing membership." . "Container" . . . . . "Indicates which resource is the subject for the members of the container.\n\t\t" . "membershipSubject" . . . . . "From a known page, how to indicate the next or last page as rdf:nil.\n\t\t" . "nextPage" . . . . . . "Linked Data Basic Profile (LDBP)" . "\n\t\t\tAll vocabulary URIs defined in the Linked Data Basic Profile (LDBP) namespace.\n\t\t"^^ . "The Linked Data Basic Profile (LDBP) Vocabulary\n\t\t" . . . . "List of predicates that indicate the ascending order of the members in a page.\n\t\t" . "containerSortPredicates" . . .

The Linked Data Basic Profile (LDBP) Vocabulary All vocabulary URIs defined in the Linked Data Basic Profile (LDBP) namespace. Linked Data Basic Profile (LDBP) Container A Basic Profile Resource (BPR) that also conforms to additional patterns and conventions in this document for managing membership. Page A resource that represents a limited set of members of a Basic Profile Container. membershipPredicate Indicates which predicate of the container should be used to determine the membership. membershipSubject Indicates which resource is the subject for the members of the container. pageOf Associated a page with its container. nextPage From a known page, how to indicate the next or last page as rdf:nil. containerSortPredicates List of predicates that indicate the ascending order of the members in a page.

@prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix rdfs: . @prefix rddl: . a rdfs:Class ; rdfs:comment "A resource that represents a limited set of members of a Basic Profile Container." ; rdfs:isDefinedBy ; rdfs:label "Page" . rddl:nature rdfs: . a rdf:Property ; rdfs:comment "Associated a page with its container." ; rdfs:domain ; rdfs:isDefinedBy ; rdfs:label "pageOf" ; rdfs:range . a rdf:Property ; rdfs:comment "Indicates which predicate of the container should be used to determine the membership.\n\t\t" ; rdfs:domain ; rdfs:isDefinedBy ; rdfs:label "membershipPredicate" ; rdfs:range rdf:Property . a rdfs:Class ; rdfs:comment "A Basic Profile Resource (BPR) that also conforms to additional patterns \n\t\tand conventions in this document for managing membership." ; rdfs:isDefinedBy ; rdfs:label "Container" . a rdf:Property ; rdfs:comment "Indicates which resource is the subject for the members of the container.\n\t\t" ; rdfs:domain ; rdfs:isDefinedBy ; rdfs:label "membershipSubject" ; rdfs:range rdf:Property . a rdf:Property ; rdfs:comment "From a known page, how to indicate the next or last page as rdf:nil.\n\t\t" ; rdfs:domain ; rdfs:isDefinedBy ; rdfs:label "nextPage" ; rdfs:range rdfs:Resource . a owl:Ontology ; rdfs:label "Linked Data Basic Profile (LDBP)" ; rdfs:seeAlso , , ; dcterms:description "\n\t\t\tAll vocabulary URIs defined in the Linked Data Basic Profile (LDBP) namespace.\n\t\t"^^rdf:XMLLiteral ; dcterms:title "The Linked Data Basic Profile (LDBP) Vocabulary\n\t\t" . a rdf:Property ; rdfs:comment "List of predicates that indicate the ascending order of the members in a page.\n\t\t" ; rdfs:domain ; rdfs:isDefinedBy ; rdfs:label "containerSortPredicates" ; rdfs:range rdf:List .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/cm#", "@type" : "owl:Ontology", "description" : "\n\t\t\tAll vocabulary URIs defined in the OSLC\n\t\t\tChange Management (CM) namespace.\n\t\t", "title" : "The OSLC Change Management(CM) Vocabulary\n\t\t", "label" : "Change Management(CM)", "seeAlso" : [ "http://open-services.net/ns/cm/cm.rdf", "http://open-services.net/bin/view/Main/CmSpecificationV2", "http://open-services.net/bin/view/Main/CmHome" ] }, { "@id" : "http://open-services.net/ns/cm#ChangeRequest", "@type" : "rdfs:Class", "comment" : "The CM Change Request resource", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "ChangeRequest", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#affectedByDefect", "@type" : "rdf:Property", "comment" : "Change request is affected by a reported defect. It is\n\t\t\tlikely that the target resource will be an oslc_cm:ChangeRequest but\n\t\t\tthat is not necessarily the case. ", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "affectedByDefect", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#affectsPlanItem", "@type" : "rdf:Property", "comment" : "Change request affects a plan item. It is likely that\n\t\t\tthe target resource will be an oslc_cm:ChangeRequest but that is not\n\t\t\tnecessarily the case. ", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "affectsPlanItem", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#affectsRequirement", "@type" : "rdf:Property", "comment" : "Change request affecting a Requirement. It is likely\n\t\t\tthat the target resource will be an oslc_rm:Requirement but that is\n\t\t\tnot necessarily the case. ", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "affectsRequirement", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#affectsTestResult", "@type" : "rdf:Property", "comment" : "Associated QM resource that is affected by this Change\n\t\t\tRequest. It is likely that the target resource will be an\n\t\t\toslc_qm:TestResult but that is not necessarily the case.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "affectsTestResult", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#approved", "@type" : "rdf:Property", "comment" : "Whether or not the Change Request has been approved.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "approved", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#blocksTestExecutionRecord", "@type" : "rdf:Property", "comment" : "Associated QM resource that is blocked by this Change\n\t\t\tRequest. It is likely that the target resource will be an\n\t\t\toslc_qm:TestExecutionRecord but that is not necessarily the case.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "blocksTestExecutionRecord", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#closeDate", "@type" : "rdf:Property", "comment" : "The date at which no further activity or work is\n\t\t\tintended to be conducted. ", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "closeDate", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#closed", "@type" : "rdf:Property", "comment" : "Whether or not the Change Request is completely done, no\n\t\t\tfurther fixes or fix verification is needed.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "closed", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#defect", "comment" : "primarily used by QM tools to report defects in testing.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "defect", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Usage_Identifiers" }, { "@id" : "http://open-services.net/ns/cm#fixed", "@type" : "rdf:Property", "comment" : "Whether or not the Change Request has been fixed.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "fixed", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#implementsRequirement", "@type" : "rdf:Property", "comment" : "Implements associated Requirement. It is likely that the\n\t\t\ttarget resource will be an oslc_rm:Requirement but that is not\n\t\t\tnecessarily the case. ", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "implementsRequirement", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#inprogress", "@type" : "rdf:Property", "comment" : "Whether or not the Change Request in a state indicating\n\t\t\tthat active work is occurring.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "inprogress", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#planItem", "comment" : "used by QM and PPM tools for associating change requests\n\t\t\tinto plans (project, release, sprint, etc).", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "planItem", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Usage_Identifiers" }, { "@id" : "http://open-services.net/ns/cm#relatedChangeRequest", "@type" : "rdf:Property", "comment" : "This relationship is loosely coupled and has no specific\n\t\t\tmeaning. It is likely that the target resource will be an\n\t\t\toslc_cm:ChangeRequest but that is not necessarily the case.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "relatedChangeRequest", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#relatedTestCase", "@type" : "rdf:Property", "comment" : "Related QM test case resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestCase but that is not\n\t\t\tnecessarily the case.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "relatedTestCase", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#relatedTestExecutionRecord", "@type" : "rdf:Property", "comment" : "Related to a QM test execution resource. It is likely\n\t\t\tthat the target resource will be an oslc_qm:TestExecutionRecord but\n\t\t\tthat is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "relatedTestExecutionRecord", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#relatedTestPlan", "@type" : "rdf:Property", "comment" : "Related QM test plan resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestPlan but that is not\n\t\t\tnecessarily the case. ", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "relatedTestPlan", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#relatedTestScript", "@type" : "rdf:Property", "comment" : "Related QM test script resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestScript but that is not\n\t\t\tnecessarily the case.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "relatedTestScript", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#requirementsChangeRequest", "comment" : "used by RM tools for associating a change request for\n\t\t\tusage in tracking changes to a Requirements resource", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "requirementsChangeRequest", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Usage_Identifiers" }, { "@id" : "http://open-services.net/ns/cm#reviewed", "@type" : "rdf:Property", "comment" : "Whether or not the Change Request has been reviewed.\n\t\t", "domain" : "http://open-services.net/ns/cm#ChangeRequest", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "reviewed", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#status", "@type" : "rdf:Property", "comment" : "Used to indicate the status of the change request based\n\t\t\ton values defined by the service provider. Most often a read-only\n\t\t\tproperty. Some possible values may include: 'Submitted', 'Done',\n\t\t\t'InProgress', etc.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "status", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#task", "comment" : "used by QM and PPM tools for associating change requests\n\t\t\tinto executable and track-able items.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "task", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Usage_Identifiers" }, { "@id" : "http://open-services.net/ns/cm#testedByTestCase", "@type" : "rdf:Property", "comment" : "Test case by which this change request is tested. It is\n\t\t\tlikely that the target resource will be an oslc_qm:TestCase but that\n\t\t\tis not necessarily the case. ", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "testedByTestCase", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#tracksChangeSet", "@type" : "rdf:Property", "comment" : "Tracks SCM change set resource. It is likely that the\n\t\t\ttarget resource will be an oslc_scm:ChangeSet but that is not\n\t\t\tnecessarily the case.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "tracksChangeSet", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#tracksRequirement", "@type" : "rdf:Property", "comment" : "Tracks the associated Requirement or Requirement\n\t\t\tChangeSet resources. It is likely that the target resource will be an\n\t\t\toslc_rm:Requirement but that is not necessarily the case.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "tracksRequirement", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm#verified", "@type" : "rdf:Property", "comment" : "Whether or not the resolution or fix of the Change\n\t\t\tRequest has been verified.", "isDefinedBy" : "http://open-services.net/ns/cm#", "label" : "verified", "seeAlso" : "http://open-services.net/bin/view/Main/CmSpecificationV2#Resource_ChangeRequest" }, { "@id" : "http://open-services.net/ns/cm/cm.rdf", "nature" : "http://www.w3.org/2000/01/rdf-schema#" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description", "@type" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "domain" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#domain", "@type" : "@id" }, "nature" : { "@id" : "http://www.rddl.org/nature", "@type" : "@id" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "rddl" : "http://www.rddl.org/" } }

. "Implements associated Requirement. It is likely that the\n\t\t\ttarget resource will be an oslc_rm:Requirement but that is not\n\t\t\tnecessarily the case. " . "implementsRequirement" . . . . "Tracks the associated Requirement or Requirement\n\t\t\tChangeSet resources. It is likely that the target resource will be an\n\t\t\toslc_rm:Requirement but that is not necessarily the case.\n\t\t" . "tracksRequirement" . . . . "Associated QM resource that is affected by this Change\n\t\t\tRequest. It is likely that the target resource will be an\n\t\t\toslc_qm:TestResult but that is not necessarily the case.\n\t\t" . "affectsTestResult" . . . . "Whether or not the Change Request has been approved.\n\t\t" . "approved" . . . . "Whether or not the Change Request in a state indicating\n\t\t\tthat active work is occurring." . "inprogress" . . . . "Related QM test case resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestCase but that is not\n\t\t\tnecessarily the case." . "relatedTestCase" . . . . . . "Change Management(CM)" . "\n\t\t\tAll vocabulary URIs defined in the OSLC\n\t\t\tChange Management (CM) namespace.\n\t\t"^^ . "The OSLC Change Management(CM) Vocabulary\n\t\t" . . . "Change request is affected by a reported defect. It is\n\t\t\tlikely that the target resource will be an oslc_cm:ChangeRequest but\n\t\t\tthat is not necessarily the case. " . "affectedByDefect" . . . . "Whether or not the resolution or fix of the Change\n\t\t\tRequest has been verified." . "verified" . . . . "Whether or not the Change Request has been fixed.\n\t\t" . "fixed" . . . . "The date at which no further activity or work is\n\t\t\tintended to be conducted. " . "closeDate" . . . . "used by RM tools for associating a change request for\n\t\t\tusage in tracking changes to a Requirements resource" . "requirementsChangeRequest" . . . "Used to indicate the status of the change request based\n\t\t\ton values defined by the service provider. Most often a read-only\n\t\t\tproperty. Some possible values may include: 'Submitted', 'Done',\n\t\t\t'InProgress', etc." . "status" . . . . "This relationship is loosely coupled and has no specific\n\t\t\tmeaning. It is likely that the target resource will be an\n\t\t\toslc_cm:ChangeRequest but that is not necessarily the case.\n\t\t" . "relatedChangeRequest" . . . . "Whether or not the Change Request is completely done, no\n\t\t\tfurther fixes or fix verification is needed." . "closed" . . . . "Change request affects a plan item. It is likely that\n\t\t\tthe target resource will be an oslc_cm:ChangeRequest but that is not\n\t\t\tnecessarily the case. " . "affectsPlanItem" . . . . "Associated QM resource that is blocked by this Change\n\t\t\tRequest. It is likely that the target resource will be an\n\t\t\toslc_qm:TestExecutionRecord but that is not necessarily the case.\n\t\t" . "blocksTestExecutionRecord" . . . . "Related QM test plan resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestPlan but that is not\n\t\t\tnecessarily the case. " . "relatedTestPlan" . . . . "The CM Change Request resource" . "ChangeRequest" . . . . "Tracks SCM change set resource. It is likely that the\n\t\t\ttarget resource will be an oslc_scm:ChangeSet but that is not\n\t\t\tnecessarily the case." . "tracksChangeSet" . . . . "used by QM and PPM tools for associating change requests\n\t\t\tinto executable and track-able items." . "task" . . . "Related QM test script resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestScript but that is not\n\t\t\tnecessarily the case." . "relatedTestScript" . . . . "Related to a QM test execution resource. It is likely\n\t\t\tthat the target resource will be an oslc_qm:TestExecutionRecord but\n\t\t\tthat is not necessarily the case." . "relatedTestExecutionRecord" . . . . . "Whether or not the Change Request has been reviewed.\n\t\t" . "reviewed" . . . . . "Change request affecting a Requirement. It is likely\n\t\t\tthat the target resource will be an oslc_rm:Requirement but that is\n\t\t\tnot necessarily the case. " . "affectsRequirement" . . . . "Test case by which this change request is tested. It is\n\t\t\tlikely that the target resource will be an oslc_qm:TestCase but that\n\t\t\tis not necessarily the case. " . "testedByTestCase" . . . . "primarily used by QM tools to report defects in testing.\n\t\t" . "defect" . . . "used by QM and PPM tools for associating change requests\n\t\t\tinto plans (project, release, sprint, etc)." . "planItem" . .

The OSLC Change Management(CM) Vocabulary All vocabulary URIs defined in the OSLC Change Management (CM) namespace. Change Management(CM) ChangeRequest The CM Change Request resource closeDate The date at which no further activity or work is intended to be conducted. status Used to indicate the status of the change request based on values defined by the service provider. Most often a read-only property. Some possible values may include: 'Submitted', 'Done', 'InProgress', etc. closed Whether or not the Change Request is completely done, no further fixes or fix verification is needed. inprogress Whether or not the Change Request in a state indicating that active work is occurring. fixed Whether or not the Change Request has been fixed. approved Whether or not the Change Request has been approved. reviewed Whether or not the Change Request has been reviewed. verified Whether or not the resolution or fix of the Change Request has been verified. relatedChangeRequest This relationship is loosely coupled and has no specific meaning. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. affectsPlanItem Change request affects a plan item. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. affectedByDefect Change request is affected by a reported defect. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. tracksRequirement Tracks the associated Requirement or Requirement ChangeSet resources. It is likely that the target resource will be an oslc_rm:Requirement but that is not necessarily the case. implementsRequirement Implements associated Requirement. It is likely that the target resource will be an oslc_rm:Requirement but that is not necessarily the case. affectsRequirement Change request affecting a Requirement. It is likely that the target resource will be an oslc_rm:Requirement but that is not necessarily the case. testedByTestCase Test case by which this change request is tested. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case. affectsTestResult Associated QM resource that is affected by this Change Request. It is likely that the target resource will be an oslc_qm:TestResult but that is not necessarily the case. blocksTestExecutionRecord Associated QM resource that is blocked by this Change Request. It is likely that the target resource will be an oslc_qm:TestExecutionRecord but that is not necessarily the case. relatedTestExecutionRecord Related to a QM test execution resource. It is likely that the target resource will be an oslc_qm:TestExecutionRecord but that is not necessarily the case. relatedTestCase Related QM test case resource. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case. relatedTestPlan Related QM test plan resource. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case. relatedTestScript Related QM test script resource. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case. tracksChangeSet Tracks SCM change set resource. It is likely that the target resource will be an oslc_scm:ChangeSet but that is not necessarily the case. defect primarily used by QM tools to report defects in testing. planItem used by QM and PPM tools for associating change requests into plans (project, release, sprint, etc). task used by QM and PPM tools for associating change requests into executable and track-able items. requirementsChangeRequest used by RM tools for associating a change request for usage in tracking changes to a Requirements resource

@prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix rdfs: . @prefix rddl: . a rdf:Property ; rdfs:comment "Implements associated Requirement. It is likely that the\n\t\t\ttarget resource will be an oslc_rm:Requirement but that is not\n\t\t\tnecessarily the case. " ; rdfs:isDefinedBy ; rdfs:label "implementsRequirement" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Tracks the associated Requirement or Requirement\n\t\t\tChangeSet resources. It is likely that the target resource will be an\n\t\t\toslc_rm:Requirement but that is not necessarily the case.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "tracksRequirement" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Associated QM resource that is affected by this Change\n\t\t\tRequest. It is likely that the target resource will be an\n\t\t\toslc_qm:TestResult but that is not necessarily the case.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "affectsTestResult" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Whether or not the Change Request has been approved.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "approved" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Whether or not the Change Request in a state indicating\n\t\t\tthat active work is occurring." ; rdfs:isDefinedBy ; rdfs:label "inprogress" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Related QM test case resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestCase but that is not\n\t\t\tnecessarily the case." ; rdfs:isDefinedBy ; rdfs:label "relatedTestCase" ; rdfs:seeAlso . a owl:Ontology ; rdfs:label "Change Management(CM)" ; rdfs:seeAlso , , ; dcterms:description "\n\t\t\tAll vocabulary URIs defined in the OSLC\n\t\t\tChange Management (CM) namespace.\n\t\t"^^rdf:XMLLiteral ; dcterms:title "The OSLC Change Management(CM) Vocabulary\n\t\t" . a rdf:Property ; rdfs:comment "Change request is affected by a reported defect. It is\n\t\t\tlikely that the target resource will be an oslc_cm:ChangeRequest but\n\t\t\tthat is not necessarily the case. " ; rdfs:isDefinedBy ; rdfs:label "affectedByDefect" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Whether or not the resolution or fix of the Change\n\t\t\tRequest has been verified." ; rdfs:isDefinedBy ; rdfs:label "verified" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Whether or not the Change Request has been fixed.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "fixed" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The date at which no further activity or work is\n\t\t\tintended to be conducted. " ; rdfs:isDefinedBy ; rdfs:label "closeDate" ; rdfs:seeAlso . rdfs:comment "used by RM tools for associating a change request for\n\t\t\tusage in tracking changes to a Requirements resource" ; rdfs:isDefinedBy ; rdfs:label "requirementsChangeRequest" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Used to indicate the status of the change request based\n\t\t\ton values defined by the service provider. Most often a read-only\n\t\t\tproperty. Some possible values may include: 'Submitted', 'Done',\n\t\t\t'InProgress', etc." ; rdfs:isDefinedBy ; rdfs:label "status" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "This relationship is loosely coupled and has no specific\n\t\t\tmeaning. It is likely that the target resource will be an\n\t\t\toslc_cm:ChangeRequest but that is not necessarily the case.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "relatedChangeRequest" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Whether or not the Change Request is completely done, no\n\t\t\tfurther fixes or fix verification is needed." ; rdfs:isDefinedBy ; rdfs:label "closed" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Change request affects a plan item. It is likely that\n\t\t\tthe target resource will be an oslc_cm:ChangeRequest but that is not\n\t\t\tnecessarily the case. " ; rdfs:isDefinedBy ; rdfs:label "affectsPlanItem" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Associated QM resource that is blocked by this Change\n\t\t\tRequest. It is likely that the target resource will be an\n\t\t\toslc_qm:TestExecutionRecord but that is not necessarily the case.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "blocksTestExecutionRecord" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Related QM test plan resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestPlan but that is not\n\t\t\tnecessarily the case. " ; rdfs:isDefinedBy ; rdfs:label "relatedTestPlan" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The CM Change Request resource" ; rdfs:isDefinedBy ; rdfs:label "ChangeRequest" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Tracks SCM change set resource. It is likely that the\n\t\t\ttarget resource will be an oslc_scm:ChangeSet but that is not\n\t\t\tnecessarily the case." ; rdfs:isDefinedBy ; rdfs:label "tracksChangeSet" ; rdfs:seeAlso . rdfs:comment "used by QM and PPM tools for associating change requests\n\t\t\tinto executable and track-able items." ; rdfs:isDefinedBy ; rdfs:label "task" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Related QM test script resource. It is likely that the\n\t\t\ttarget resource will be an oslc_qm:TestScript but that is not\n\t\t\tnecessarily the case." ; rdfs:isDefinedBy ; rdfs:label "relatedTestScript" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Related to a QM test execution resource. It is likely\n\t\t\tthat the target resource will be an oslc_qm:TestExecutionRecord but\n\t\t\tthat is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "relatedTestExecutionRecord" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Whether or not the Change Request has been reviewed.\n\t\t" ; rdfs:domain ; rdfs:isDefinedBy ; rdfs:label "reviewed" ; rdfs:seeAlso . rddl:nature rdfs: . a rdf:Property ; rdfs:comment "Change request affecting a Requirement. It is likely\n\t\t\tthat the target resource will be an oslc_rm:Requirement but that is\n\t\t\tnot necessarily the case. " ; rdfs:isDefinedBy ; rdfs:label "affectsRequirement" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Test case by which this change request is tested. It is\n\t\t\tlikely that the target resource will be an oslc_qm:TestCase but that\n\t\t\tis not necessarily the case. " ; rdfs:isDefinedBy ; rdfs:label "testedByTestCase" ; rdfs:seeAlso . rdfs:comment "primarily used by QM tools to report defects in testing.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "defect" ; rdfs:seeAlso . rdfs:comment "used by QM and PPM tools for associating change requests\n\t\t\tinto plans (project, release, sprint, etc)." ; rdfs:isDefinedBy ; rdfs:label "planItem" ; rdfs:seeAlso .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/config#", "@type" : "owl:Ontology", "dateCopyrighted" : "2012-2015", "description" : "The OSLC Configuration Management vocabulary defines terms for versioned resources and configurations of those versioned resources.", "license" : "TBD", "source" : "http://tools.oasis-open.org/version-control/svn/oslc-core/trunk/specs/config/config-vocab.ttl", "title" : "OSLC Configuration Management vocabulary", "preferredNamespacePrefix" : "oslc_config", "label" : "OSLC Configuration Management vocabulary" }, { "@id" : "oslc_config:Activity", "@type" : "rdfs:Class", "comment" : "An activity is a read-only resource representing a long-running operation, such as recursive baseline or stream creation.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "Activity" }, { "@id" : "oslc_config:Baseline", "@type" : "rdfs:Class", "comment" : "An immutable configuration, with immutable contributions and immutable selections of immutable resources. All contributions to this configuration MUST be baselines.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "Baseline", "subClassOf" : "oslc_config:Configuration" }, { "@id" : "oslc_config:ChangeSet", "@type" : "rdfs:Class", "comment" : "A change set configuration represents a set of changes (including additions and removals) to some other configuration.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "ChangeSet", "subClassOf" : "oslc_config:Configuration" }, { "@id" : "oslc_config:ChangeSetSelections", "@type" : "rdfs:Class", "comment" : "A resource listing the version resources selected by a change set configuration.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "ChangeSetSelections", "subClassOf" : "oslc_config:Selections" }, { "@id" : "oslc_config:Component", "@type" : "rdfs:Class", "comment" : "A unit of organization consisting of a set of versioned resources. Components are the units of configurability, and form reusable assets or building blocks.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "Component" }, { "@id" : "oslc_config:Configuration", "@type" : "rdfs:Class", "comment" : "A configuration identifies a set of versions of resources in a component. Configurations commonly identify exactly one version of each resource in a component. Configurations can also assemble other configurations into a shared context across multiple components.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "Configuration" }, { "@id" : "oslc_config:ConfigurationSettings", "@type" : "rdfs:Class", "comment" : "Information about settings and preferences for a Configuration Management service.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "ConfigurationSettings" }, { "@id" : "oslc_config:Contribution", "@type" : "rdfs:Class", "comment" : "A contribution represents the contribution of one configuration to another.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "Contribution" }, { "@id" : "oslc_config:PersonalConfiguration", "@type" : "rdfs:Class", "comment" : "A configuration intended for use by a single agent, rather than shared.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "PersonalConfiguration", "subClassOf" : "oslc_config:Configuration" }, { "@id" : "oslc_config:Removals", "@type" : "rdfs:Class", "comment" : "For a change set, the selections to be removed from an overridden configuration.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "Removals" }, { "@id" : "oslc_config:RemoveAll", "@type" : "rdfs:Class", "comment" : "For a change set, an indicator that all selections in the overriden configuration are to be ignored; all selections are defined by the change set.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "RemovalAll" }, { "@id" : "oslc_config:Selections", "@type" : "rdfs:Class", "comment" : "A resource listing the version resources selected by a configuration.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "Selections" }, { "@id" : "oslc_config:Stream", "@type" : "rdfs:Class", "comment" : "A mutable configuration. Contributions to this configuration can be streams or baselines.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "Stream", "subClassOf" : "oslc_config:Configuration" }, { "@id" : "oslc_config:UnboundSelections", "@type" : "rdfs:Class", "comment" : "An indicator that a set of selections are as-yet unbound concept resources as opposed to bound version resources.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "UnboundSelections" }, { "@id" : "oslc_config:VersionResource", "@type" : "rdfs:Class", "comment" : "This type is used as a marker for any version resource.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "VersionResource" }, { "@id" : "oslc_config:acceptedBy", "@type" : "rdf:Property", "comment" : "A type of configuration accepted as a contribution by the subject configuration.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "acceptedBy", "range" : "oslc_config:Configuration" }, { "@id" : "oslc_config:accepts", "@type" : "rdf:Property", "comment" : "A type of configuration acceptable as a contribution to the subject configuration.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "accepts", "range" : "oslc_config:Configuration" }, { "@id" : "oslc_config:baselineOfStream", "@type" : "rdf:Property", "comment" : "The stream from which a baseline was made.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "baselineOfStream", "range" : "oslc_config:Stream" }, { "@id" : "oslc_config:baselines", "@type" : "rdf:Property", "comment" : "A Linked Data Platform Container for baselines of a stream.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "baselines" }, { "@id" : "oslc_config:branch", "@type" : "rdf:Property", "comment" : "Identifies a resource as one for a specific branch or variant of the component.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "branch" }, { "@id" : "oslc_config:committed", "@type" : "rdf:Property", "comment" : "Date and time a resource was committed, or checked in.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "committed" }, { "@id" : "oslc_config:committer", "@type" : "rdf:Property", "comment" : "The entity that committed or checked in this resource.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "committer" }, { "@id" : "oslc_config:component", "@type" : "rdf:Property", "comment" : "A reference to a Component resource.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "component" }, { "@id" : "oslc_config:configuration", "@type" : "rdf:Property", "comment" : "A reference to a Configuration resource.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "configuration" }, { "@id" : "oslc_config:configurationSettings", "@type" : "rdf:Property", "comment" : "A reference to information about settings and preferences for a Configuration Management service.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "configurationSettings" }, { "@id" : "oslc_config:configurations", "@type" : "rdf:Property", "comment" : "A Linked Data Platform Container for configurations of a component.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "configurations" }, { "@id" : "oslc_config:contribution", "@type" : "rdf:Property", "comment" : "A reference to a Contribution resource.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "contribution", "range" : "oslc_config:Contribution" }, { "@id" : "oslc_config:contributionOrder", "@type" : "rdf:Property", "comment" : "The ordering value for a contribution.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "contributionOrder" }, { "@id" : "oslc_config:derivedFrom", "@type" : "rdf:Property", "comment" : "A resource from which this resource was derived; the use of prov:wasDerivedFrom is preferred.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "derivedFrom", "term_status" : "archaic" }, { "@id" : "oslc_config:globalConfigurationService", "@type" : "rdfs:Resource", "comment" : "An oslc:usage value marking a global configuration service.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "globalConfigurationService" }, { "@id" : "oslc_config:mutable", "@type" : "rdf:Property", "comment" : "A boolean property indicating whether or not a resource is modifiable; replaced by use of Baseline and Stream types.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "mutable", "term_status" : "archaic" }, { "@id" : "oslc_config:overrides", "@type" : "rdf:Property", "comment" : "A reference to a configuration modified by a change set configuration.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "overrides" }, { "@id" : "oslc_config:previousBaseline", "@type" : "rdf:Property", "comment" : "For a stream or a baseline, a link to the most recent baseline of the same stream.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "previousBaseline", "range" : "oslc_config:Baseline" }, { "@id" : "oslc_config:progressMessage", "@type" : "rdf:Property", "comment" : "Text describing the progress of an operation.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "progressMessage" }, { "@id" : "oslc_config:selections", "@type" : "rdf:Property", "comment" : "A reference to a Selections resource.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "selections", "range" : "oslc_config:Selections" }, { "@id" : "oslc_config:selects", "@type" : "rdf:Property", "comment" : "A reference to a selected version resource.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "selects" }, { "@id" : "oslc_config:streams", "@type" : "rdf:Property", "comment" : "A Linked Data Platform Container for streams created from a baseline.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "streams" }, { "@id" : "oslc_config:versionId", "@type" : "rdf:Property", "comment" : "A human-readable version identifier.", "isDefinedBy" : "http://open-services.net/ns/config#", "label" : "versionId" } ], "@context" : { "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "term_status" : { "@id" : "http://www.w3.org/2003/06/sw-vocab-status/ns#term_status" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "subClassOf" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#subClassOf", "@type" : "@id" }, "range" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#range", "@type" : "@id" }, "dateCopyrighted" : { "@id" : "http://purl.org/dc/terms/dateCopyrighted" }, "license" : { "@id" : "http://purl.org/dc/terms/license" }, "source" : { "@id" : "http://purl.org/dc/terms/source", "@type" : "@id" }, "preferredNamespacePrefix" : { "@id" : "http://purl.org/vocab/vann/preferredNamespacePrefix" }, "description" : { "@id" : "http://purl.org/dc/terms/description" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "owl" : "http://www.w3.org/2002/07/owl#", "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "xsd" : "http://www.w3.org/2001/XMLSchema#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "oslc_config" : "http://open-services.net/ns/config#", "vann" : "http://purl.org/vocab/vann/", "vs" : "http://www.w3.org/2003/06/sw-vocab-status/ns#", "oslc" : "http://open-services.net/ns/core#" } }

"A resource from which this resource was derived; the use of prov:wasDerivedFrom is preferred." . "archaic" . "derivedFrom" . . . "A Linked Data Platform Container for streams created from a baseline." . "streams" . . . "A reference to a configuration modified by a change set configuration." . "overrides" . . . "An oslc:usage value marking a global configuration service." . "globalConfigurationService" . . . "A boolean property indicating whether or not a resource is modifiable; replaced by use of Baseline and Stream types." . "archaic" . "mutable" . . . "A reference to information about settings and preferences for a Configuration Management service." . "configurationSettings" . . . "Identifies a resource as one for a specific branch or variant of the component." . "branch" . . . "A contribution represents the contribution of one configuration to another." . "Contribution" . . . "Date and time a resource was committed, or checked in." . "committed" . . . "A Linked Data Platform Container for baselines of a stream." . "baselines" . . . "A unit of organization consisting of a set of versioned resources. Components are the units of configurability, and form reusable assets or building blocks." . "Component" . . . "A configuration intended for use by a single agent, rather than shared." . . "PersonalConfiguration" . . . "An indicator that a set of selections are as-yet unbound concept resources as opposed to bound version resources." . "UnboundSelections" . . . "A type of configuration accepted as a contribution by the subject configuration." . . "acceptedBy" . . . "The ordering value for a contribution." . "contributionOrder" . . . "For a change set, the selections to be removed from an overridden configuration." . "Removals" . . . "A type of configuration acceptable as a contribution to the subject configuration." . . "accepts" . . . "This type is used as a marker for any version resource." . "VersionResource" . . . "A human-readable version identifier." . "versionId" . . . "A reference to a selected version resource." . "selects" . . . "A reference to a Selections resource." . . "selections" . . . "Information about settings and preferences for a Configuration Management service." . "ConfigurationSettings" . . . "An immutable configuration, with immutable contributions and immutable selections of immutable resources. All contributions to this configuration MUST be baselines." . . "Baseline" . . . "A reference to a Contribution resource." . . "contribution" . . . "A reference to a Component resource." . "component" . . . "2012-2015" . "TBD" . . "oslc_config" . "OSLC Configuration Management vocabulary" . "The OSLC Configuration Management vocabulary defines terms for versioned resources and configurations of those versioned resources." . "OSLC Configuration Management vocabulary" . . "A Linked Data Platform Container for configurations of a component." . "configurations" . . . "Text describing the progress of an operation." . "progressMessage" . . . "For a stream or a baseline, a link to the most recent baseline of the same stream." . . "previousBaseline" . . . "A mutable configuration. Contributions to this configuration can be streams or baselines." . . "Stream" . . . "The entity that committed or checked in this resource." . "committer" . . . "The stream from which a baseline was made." . . "baselineOfStream" . . . "A reference to a Configuration resource." . "configuration" . . . "A change set configuration represents a set of changes (including additions and removals) to some other configuration." . . "ChangeSet" . . . "A resource listing the version resources selected by a configuration." . "Selections" . . . "For a change set, an indicator that all selections in the overriden configuration are to be ignored; all selections are defined by the change set." . "RemovalAll" . . . "A configuration identifies a set of versions of resources in a component. Configurations commonly identify exactly one version of each resource in a component. Configurations can also assemble other configurations into a shared context across multiple components." . "Configuration" . . . "An activity is a read-only resource representing a long-running operation, such as recursive baseline or stream creation." . "Activity" . . . "A resource listing the version resources selected by a change set configuration." . . "ChangeSetSelections" . . .

2012-2015 TBD oslc_config OSLC Configuration Management vocabulary The OSLC Configuration Management vocabulary defines terms for versioned resources and configurations of those versioned resources. OSLC Configuration Management vocabulary This type is used as a marker for any version resource. VersionResource Information about settings and preferences for a Configuration Management service. ConfigurationSettings A configuration intended for use by a single agent, rather than shared. PersonalConfiguration A contribution represents the contribution of one configuration to another. Contribution An indicator that a set of selections are as-yet unbound concept resources as opposed to bound version resources. UnboundSelections For a change set, an indicator that all selections in the overriden configuration are to be ignored; all selections are defined by the change set. RemovalAll A resource listing the version resources selected by a change set configuration. ChangeSetSelections A configuration identifies a set of versions of resources in a component. Configurations commonly identify exactly one version of each resource in a component. Configurations can also assemble other configurations into a shared context across multiple components. Configuration A resource listing the version resources selected by a configuration. Selections A mutable configuration. Contributions to this configuration can be streams or baselines. Stream An immutable configuration, with immutable contributions and immutable selections of immutable resources. All contributions to this configuration MUST be baselines. Baseline An activity is a read-only resource representing a long-running operation, such as recursive baseline or stream creation. Activity For a change set, the selections to be removed from an overridden configuration. Removals A unit of organization consisting of a set of versioned resources. Components are the units of configurability, and form reusable assets or building blocks. Component A change set configuration represents a set of changes (including additions and removals) to some other configuration. ChangeSet For a stream or a baseline, a link to the most recent baseline of the same stream. previousBaseline A Linked Data Platform Container for baselines of a stream. baselines A reference to a Configuration resource. configuration A Linked Data Platform Container for configurations of a component. configurations A reference to a Contribution resource. contribution A type of configuration accepted as a contribution by the subject configuration. acceptedBy Date and time a resource was committed, or checked in. committed A human-readable version identifier. versionId A reference to a configuration modified by a change set configuration. overrides A reference to information about settings and preferences for a Configuration Management service. configurationSettings A reference to a Selections resource. selections Text describing the progress of an operation. progressMessage A boolean property indicating whether or not a resource is modifiable; replaced by use of Baseline and Stream types. archaic mutable A Linked Data Platform Container for streams created from a baseline. streams A reference to a selected version resource. selects A resource from which this resource was derived; the use of prov:wasDerivedFrom is preferred. archaic derivedFrom The entity that committed or checked in this resource. committer A reference to a Component resource. component The stream from which a baseline was made. baselineOfStream A type of configuration acceptable as a contribution to the subject configuration. accepts The ordering value for a contribution. contributionOrder Identifies a resource as one for a specific branch or variant of the component. branch An oslc:usage value marking a global configuration service. globalConfigurationService

# RDF Vocabulary document for OSLC Configuration Management @prefix dcterms: . @prefix owl: . @prefix oslc: . @prefix oslc_config: . @prefix rdf: . @prefix rdfs: . @prefix vann: . @prefix vs: . @prefix xsd: . # the vocabulary oslc_config: a owl:Ontology ; dcterms:title "OSLC Configuration Management vocabulary" ; dcterms:description "The OSLC Configuration Management vocabulary defines terms for versioned resources and configurations of those versioned resources." ; rdfs:label "OSLC Configuration Management vocabulary" ; vann:preferredNamespacePrefix "oslc_config" ; dcterms:source ; # TBD - what should the license and copyright info be here? dcterms:license "TBD" ; dcterms:dateCopyrighted "2012-2015" . # Classes oslc_config:Activity a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "Activity" ; rdfs:comment "An activity is a read-only resource representing a long-running operation, such as recursive baseline or stream creation." . oslc_config:Baseline a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "Baseline" ; rdfs:subClassOf oslc_config:Configuration ; rdfs:comment "An immutable configuration, with immutable contributions and immutable selections of immutable resources. All contributions to this configuration MUST be baselines." . oslc_config:ChangeSet a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "ChangeSet" ; rdfs:subClassOf oslc_config:Configuration ; rdfs:comment "A change set configuration represents a set of changes (including additions and removals) to some other configuration." . oslc_config:ChangeSetSelections a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "ChangeSetSelections" ; rdfs:subClassOf oslc_config:Selections ; rdfs:comment "A resource listing the version resources selected by a change set configuration." . oslc_config:Component a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "Component" ; rdfs:comment "A unit of organization consisting of a set of versioned resources. Components are the units of configurability, and form reusable assets or building blocks." . oslc_config:Configuration a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "Configuration" ; rdfs:comment "A configuration identifies a set of versions of resources in a component. Configurations commonly identify exactly one version of each resource in a component. Configurations can also assemble other configurations into a shared context across multiple components." . oslc_config:ConfigurationSettings a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "ConfigurationSettings" ; rdfs:comment "Information about settings and preferences for a Configuration Management service." . oslc_config:Contribution a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "Contribution" ; rdfs:comment "A contribution represents the contribution of one configuration to another." . oslc_config:PersonalConfiguration a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "PersonalConfiguration" ; rdfs:subClassOf oslc_config:Configuration ; rdfs:comment "A configuration intended for use by a single agent, rather than shared." . oslc_config:Selections a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "Selections" ; rdfs:comment "A resource listing the version resources selected by a configuration." . oslc_config:Removals a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "Removals" ; rdfs:comment "For a change set, the selections to be removed from an overridden configuration." . oslc_config:RemoveAll a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "RemovalAll" ; rdfs:comment "For a change set, an indicator that all selections in the overriden configuration are to be ignored; all selections are defined by the change set." . oslc_config:UnboundSelections a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "UnboundSelections" ; rdfs:comment "An indicator that a set of selections are as-yet unbound concept resources as opposed to bound version resources." . oslc_config:Stream a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "Stream" ; rdfs:subClassOf oslc_config:Configuration ; rdfs:comment "A mutable configuration. Contributions to this configuration can be streams or baselines." . oslc_config:VersionResource a rdfs:Class ; rdfs:isDefinedBy oslc_config: ; rdfs:label "VersionResource" ; rdfs:comment "This type is used as a marker for any version resource." . # Properties oslc_config:accepts a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "accepts" ; rdfs:range oslc_config:Configuration ; rdfs:comment "A type of configuration acceptable as a contribution to the subject configuration." . oslc_config:acceptedBy a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "acceptedBy" ; rdfs:range oslc_config:Configuration ; rdfs:comment "A type of configuration accepted as a contribution by the subject configuration." . oslc_config:baselineOfStream a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "baselineOfStream" ; rdfs:range oslc_config:Stream ; rdfs:comment "The stream from which a baseline was made." . oslc_config:baselines a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "baselines" ; rdfs:comment "A Linked Data Platform Container for baselines of a stream." . oslc_config:branch a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "branch" ; rdfs:comment "Identifies a resource as one for a specific branch or variant of the component." . oslc_config:committed a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "committed" ; rdfs:comment "Date and time a resource was committed, or checked in." . oslc_config:committer a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "committer" ; rdfs:comment "The entity that committed or checked in this resource." . oslc_config:component a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "component" ; rdfs:comment "A reference to a Component resource." . oslc_config:configuration a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "configuration" ; rdfs:comment "A reference to a Configuration resource." . oslc_config:configurations a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "configurations" ; rdfs:comment "A Linked Data Platform Container for configurations of a component." . oslc_config:configurationSettings a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "configurationSettings" ; rdfs:comment "A reference to information about settings and preferences for a Configuration Management service." . oslc_config:contribution a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "contribution" ; rdfs:range oslc_config:Contribution ; rdfs:comment "A reference to a Contribution resource." . oslc_config:contributionOrder a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "contributionOrder" ; rdfs:comment "The ordering value for a contribution." . oslc_config:overrides a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "overrides" ; rdfs:comment "A reference to a configuration modified by a change set configuration." . oslc_config:previousBaseline a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "previousBaseline" ; rdfs:range oslc_config:Baseline ; rdfs:comment "For a stream or a baseline, a link to the most recent baseline of the same stream." . oslc_config:progressMessage a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "progressMessage" ; rdfs:comment "Text describing the progress of an operation." . oslc_config:selections a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "selections" ; rdfs:range oslc_config:Selections ; rdfs:comment "A reference to a Selections resource." . oslc_config:selects a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "selects" ; rdfs:comment "A reference to a selected version resource." . oslc_config:streams a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "streams" ; rdfs:comment "A Linked Data Platform Container for streams created from a baseline." . oslc_config:versionId a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "versionId" ; rdfs:comment "A human-readable version identifier." . # Obsolete terms oslc_config:derivedFrom a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "derivedFrom" ; vs:term_status "archaic" ; rdfs:comment "A resource from which this resource was derived; the use of prov:wasDerivedFrom is preferred." . oslc_config:mutable a rdf:Property ; rdfs:isDefinedBy oslc_config: ; rdfs:label "mutable" ; vs:term_status "archaic" ; rdfs:comment "A boolean property indicating whether or not a resource is modifiable; replaced by use of Baseline and Stream types." . # Individuals oslc_config:globalConfigurationService a rdfs:Resource ; rdfs:isDefinedBy oslc_config: ; rdfs:label "globalConfigurationService" ; rdfs:comment "An oslc:usage value marking a global configuration service." .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/core#", "@type" : "owl:Ontology", "description" : "\n\t\t\tAll vocabulary URIs defined in the OSLC Core namespace.\n\t\t", "source" : "http://open-services.net/ns/core/core.rdf", "title" : "The OSLC Core Vocabulary\n\t\t", "label" : "Core", "seeAlso" : [ "http://open-services.net/ns/core/core.rdf", "http://open-services.net/bin/view/Main/OslcCoreSpecification" ] }, { "@id" : "http://open-services.net/ns/core#AllowedValues", "@type" : "rdfs:Class", "comment" : "Allowed values for one property.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "AllowedValues", "seeAlso" : "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#Resource_Allowed_Values" }, { "@id" : "http://open-services.net/ns/core#Any", "comment" : "Any value type is allowed.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Any", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#AnyResource", "comment" : "AnyResource: value is either a Resource or Local Resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "AnyResource", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#Comment", "@type" : "rdfs:Class", "comment" : "A Comment resource represents a single note, or comment, in a discussion thread.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Comment", "seeAlso" : "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#oslc_Comment_Resource" }, { "@id" : "http://open-services.net/ns/core#Compact", "@type" : "rdfs:Class", "comment" : "The Compact representation, fetched as application/x-oslc-compact+xml", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Compact", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreUiPreview#Resource_Compact" }, { "@id" : "http://open-services.net/ns/core#CreationFactory", "@type" : "rdfs:Class", "comment" : "The CreationFactory definition included in a ServiceProvider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "CreationFactory", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Creation_Factory" }, { "@id" : "http://open-services.net/ns/core#Dialog", "@type" : "rdfs:Class", "comment" : "The Dialog definition included in ServiceProvider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Dialog", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Dialog" }, { "@id" : "http://open-services.net/ns/core#Discussion", "@type" : "rdfs:Class", "comment" : "A Discussion resource is intended to represent a sequence of comments or notes regarding the associated resource", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Discussion", "seeAlso" : "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#oslc_Discussion_Resource" }, { "@id" : "http://open-services.net/ns/core#Either", "comment" : "Representations is either a URI reference or blank node.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Either", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#Error", "@type" : "rdfs:Class", "comment" : "Basis for forming an error response.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Error", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Error" }, { "@id" : "http://open-services.net/ns/core#Exactly-one", "comment" : "Property with value is required.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Exactly-one", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#ExtendedError", "@type" : "rdfs:Class", "comment" : "Extended error information.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "ExtendedError", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Extended_Error" }, { "@id" : "http://open-services.net/ns/core#Inline", "comment" : "An inline (RDF blank node) representation.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Inline", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#LocalResource", "comment" : "Local Resource: value is an resource available only inside the resource being defined (i.e. a Blank Node).", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "LocalResource", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#OAuthConfiguration", "@type" : "rdfs:Class", "comment" : "The OAuthConfiguration definition included in ServiceProvider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "OAuthConfiguration", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_OAuth_Configuration" }, { "@id" : "http://open-services.net/ns/core#One-or-many", "comment" : "Property is required and multi-valued.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "One-or-many", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#PrefixDefinition", "@type" : "rdfs:Class", "comment" : "The PrefixDefinition definition included in ServiceProvider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "PrefixDefinition", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Prefix_Definition" }, { "@id" : "http://open-services.net/ns/core#Preview", "@type" : "rdfs:Class", "comment" : "The UI Preview representation.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Preview", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreUiPreview#Resource_Preview" }, { "@id" : "http://open-services.net/ns/core#Property", "@type" : "rdfs:Class", "comment" : "A Property resource describes one allowed or required property of a resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Property", "seeAlso" : "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#Value_type_Property" }, { "@id" : "http://open-services.net/ns/core#Publisher", "@type" : "rdfs:Class", "comment" : "The Publisher definition included in ServiceProvider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Publisher", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Publisher" }, { "@id" : "http://open-services.net/ns/core#QueryCapability", "@type" : "rdfs:Class", "comment" : "The QueryCapability definition included in a ServiceProvider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "QueryCapability", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service" }, { "@id" : "http://open-services.net/ns/core#Reference", "comment" : "A URI Reference representation to a resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Reference", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#Resource", "comment" : "Resource: value is a resource at a specified URI (i.e. a URI Reference).", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Resource", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#ResourceShape", "@type" : "rdfs:Class", "comment" : "The Resource Shape used for creation, query and modify. Formally, a shape S applies to a resource R if there is a triple R rdf:type T and there is a triple S oslc:describes T, or if there is a triple R oslc:instanceShape S.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "ResourceShape", "seeAlso" : [ "http://open-services.net/ns/core#instanceShape", "http://open-services.net/ns/core#describes", "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#Resource_Resource_Shape" ] }, { "@id" : "http://open-services.net/ns/core#ResponseInfo", "@type" : "rdfs:Class", "comment" : "The ResponseInfo included in query results.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "ResponseInfo", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_ResponseInfo" }, { "@id" : "http://open-services.net/ns/core#Service", "@type" : "rdfs:Class", "comment" : "The Service definition included in a ServiceProvider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Service", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service" }, { "@id" : "http://open-services.net/ns/core#ServiceProvider", "@type" : "rdfs:Class", "comment" : "The Service Provider resource", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "ServiceProvider", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service_Provider" }, { "@id" : "http://open-services.net/ns/core#ServiceProviderCatalog", "@type" : "rdfs:Class", "comment" : "The Service Provider Catalog resource", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "ServiceProviderCatalog", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service_Provider_Catalog" }, { "@id" : "http://open-services.net/ns/core#Zero-or-many", "comment" : "Property is optional and multi-valued.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Zero-or-many", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#Zero-or-one", "comment" : "Property is optional and single valued.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "Zero-or-one", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#allowedValue", "@type" : "rdf:Property", "comment" : "value allowed for a property.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "allowedValue", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#allowedValues", "@type" : "rdf:Property", "comment" : "Resource with allowed values for the property being defined. Range of oslc:AllowedValues", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "allowedValues", "range" : "http://open-services.net/ns/core#AllowedValues", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#authorizationURI", "@type" : "rdf:Property", "comment" : "URI for obtaining OAuth authorization.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "authorizationURI", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#comment", "@type" : "rdf:Property", "comment" : "Comment about the resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "comment", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#creation", "@type" : "rdf:Property", "comment" : "To create a new resource via the factory, post it to this URI.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "creation", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Creation_Factory" }, { "@id" : "http://open-services.net/ns/core#creationDialog", "@type" : "rdf:Property", "comment" : "Enables clients to create a resource via UI.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "creationDialog", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service" }, { "@id" : "http://open-services.net/ns/core#creationFactory", "@type" : "rdf:Property", "comment" : "Enables clients to create new resources.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "creationFactory", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service" }, { "@id" : "http://open-services.net/ns/core#default", "comment" : "Used in conjunction with oslc:usage property used to identify\n\t\twhich service is the default usage.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "default", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#defaultValue", "@type" : "rdf:Property", "comment" : "A default value for property, inlined into property definition.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "defaultValue", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#describes", "@type" : "rdf:Property", "comment" : "This shape describes resources that are of the RDF type given by the object of the oslc:describes predicate. Formally, a shape S applies to a resource R if there is a triple R rdf:type T and there is a triple S oslc:describes T.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "describes", "seeAlso" : [ "http://open-services.net/ns/core#ResourceShape", "http://open-services.net/bin/view/Main/OslcCoreSpecification" ] }, { "@id" : "http://open-services.net/ns/core#details", "@type" : "rdf:Property", "comment" : "A URL that may be used to retrieve a web page to determine additional details about the service provider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "details", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service_Provider" }, { "@id" : "http://open-services.net/ns/core#dialog", "@type" : "rdf:Property", "comment" : "The URI of the dialog.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "dialog", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Dialog" }, { "@id" : "http://open-services.net/ns/core#discussedBy", "@type" : "rdf:Property", "comment" : "A series of notes and comments about this resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "discussedBy", "seeAlso" : "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#OSLC_Properties" }, { "@id" : "http://open-services.net/ns/core#discussionAbout", "@type" : "rdf:Property", "comment" : "Reference to associated resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "discussionAbout", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#document", "comment" : "The URI of an HTML document to be used for the preview.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "document", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreUiPreview#Resource_Preview" }, { "@id" : "http://open-services.net/ns/core#domain", "@type" : "rdf:Property", "comment" : "Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "domain", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service" }, { "@id" : "http://open-services.net/ns/core#executes", "@type" : "rdf:Property", "comment" : "Link from a currently available action to the future action it realizes.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "executes", "seeAlso" : [ "http://open-services.net/wiki/automation/OSLC-Automation-Specification-Version-2.1/#Future-actions", "http://open-services.net/wiki/core/Actions-2.0/#Future-actions" ] }, { "@id" : "http://open-services.net/ns/core#extendedError", "@type" : "rdf:Property", "comment" : "Extended (additional) error information.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "extendedError", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Error" }, { "@id" : "http://open-services.net/ns/core#futureAction", "@type" : "rdf:Property", "comment" : "A predicate that links to an action that is not currently executable on the subject resource, \n\t\tbut may be executable in the future and/or on other resources. \n\t\tFor example, in OSLC Automation this is expected to link from an oslc_auto:AutomationPlan to an \n\t\toslc:Action resource with zero bindings (as it is not executable), \n\t\twith the meaning that the executable form of the action may be available on oslc_auto:AutomationResult resources \n\t\tgenerated by executing that Automation Plan. Similarly, resource shapes can allow discovery of actions\n\t\tavailable on the output of a creation factory.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "futureAction", "seeAlso" : [ "http://open-services.net/wiki/automation/OSLC-Automation-Specification-Version-2.1/#Future-actions", "http://open-services.net/wiki/core/Actions-2.0/#Future-actions" ] }, { "@id" : "http://open-services.net/ns/core#hidden", "@type" : "rdf:Property", "comment" : "A hint that indicates that property MAY be hidden when presented in a user interface.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "hidden", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#hintHeight", "@type" : "rdf:Property", "comment" : "Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size).", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "hintHeight", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Dialog" }, { "@id" : "http://open-services.net/ns/core#hintWidth", "@type" : "rdf:Property", "comment" : "Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size).", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "hintWidth", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Dialog" }, { "@id" : "http://open-services.net/ns/core#icon", "@type" : "rdf:Property", "comment" : "URL to an icon file that represents the provider. This icon should be a favicon format and 16x16 pixels in size.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "icon", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Publisher" }, { "@id" : "http://open-services.net/ns/core#inReplyTo", "@type" : "rdf:Property", "comment" : "Reference to comment this comment is in reply to.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "inReplyTo", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#initialHeight", "comment" : "Recommended initial height of the preview. The presence of this property indicates that the preview supports dynamically computing its size. Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1). Em and ex units are interpreted relative to the default system font (at 100% size). ", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "initialHeight", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreUiPreview#Representation_Preview" }, { "@id" : "http://open-services.net/ns/core#instanceShape", "@type" : "rdf:Property", "comment" : "The URI of a Resource Shape that describes the possible properties.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "instanceShape", "seeAlso" : [ "http://open-services.net/ns/core#ResourceShape", "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#OSLC_Properties" ] }, { "@id" : "http://open-services.net/ns/core#isMemberProperty", "@type" : "rdf:Property", "comment" : "Used to define when a property is a member of a container, useful for query.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "isMemberProperty", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#label", "@type" : "rdf:Property", "comment" : "Very short label for use in menu items.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "label", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Publisher" }, { "@id" : "http://open-services.net/ns/core#largePreview", "comment" : "URI and sizing properties for an HTML document to be used for a large preview.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "largePreview", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreUiPreview#Representation_Compact" }, { "@id" : "http://open-services.net/ns/core#maxSize", "@type" : "rdf:Property", "comment" : "For String properties only, specifies maximum characters allowed. If not set, then there is no maximum or maximum is specified elsewhere.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "maxSize", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#message", "@type" : "rdf:Property", "comment" : "An informative message describing the error that occurred.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "message", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Error" }, { "@id" : "http://open-services.net/ns/core#modifiedBy", "@type" : "rdf:Property", "comment" : "The URI of a resource describing the entity that most recently modified this resource. The link target is usually a foaf:Person or foaf:Agent, but could be any type. This is modeled after dcterms:creator, but Dublin Core currently has no equivalent property.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "modifiedBy", "seeAlso" : [ "http://dublincore.org/documents/dcmi-terms/#terms-creator", "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#OSLC_Properties" ] }, { "@id" : "http://open-services.net/ns/core#moreInfo", "@type" : "rdf:Property", "comment" : "A resource giving more information on the error SHOULD be of an HTML content-type.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "moreInfo", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Extended_Error" }, { "@id" : "http://open-services.net/ns/core#name", "@type" : "rdf:Property", "comment" : "Name of property being defined, i.e. second part of property's Prefixed Name.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "name", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#nextPage", "@type" : "rdf:Property", "comment" : "Link to next page of response.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "nextPage", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Response_Information" }, { "@id" : "http://open-services.net/ns/core#oauthAccessTokenURI", "@type" : "rdf:Property", "comment" : "URI for obtaining OAuth access token.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "oauthAccessTokenURI", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#oauthConfiguration", "@type" : "rdf:Property", "comment" : "Defines the three OAuth URIs required for a client to act as an OAuth consumer.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "oauthConfiguration", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service_Provider" }, { "@id" : "http://open-services.net/ns/core#oauthRequestTokenURI", "@type" : "rdf:Property", "comment" : "URI for obtaining OAuth request token.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "oauthRequestTokenURI", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#occurs", "@type" : "rdf:Property", "comment" : "MUST be either http://open-services.net/ns/core#Exactly-one, http://open-services.net/ns/core#Zero-or-one, http://open-services.net/ns/core#Zero-or-many or http://open-services.net/ns/core#One-or-many.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "occurs", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#partOfDiscussion", "@type" : "rdf:Property", "comment" : "Reference to owning Discussion resource .", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "partOfDiscussion", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#prefix", "@type" : "rdf:Property", "comment" : "Namespace prefix to be used for this namespace.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "prefix", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#prefixBase", "@type" : "rdf:Property", "comment" : "The base URI of the namespace.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "prefixBase", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#prefixDefinition", "@type" : "rdf:Property", "comment" : "Defines a namespace prefix for use in JSON representations and in forming OSLC Query Syntax strings.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "prefixDefinition", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service_Provider" }, { "@id" : "http://open-services.net/ns/core#property", "@type" : "rdf:Property", "comment" : "The properties that are allowed or required by this shape.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "property", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#propertyDefinition", "@type" : "rdf:Property", "comment" : "URI of the property whose usage is being described.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "propertyDefinition", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#queryBase", "@type" : "rdf:Property", "comment" : "The base URI to use for queries. Queries may be invoked either by HTTP GET or HTTP POST. For HTTP GET, a query URI is formed by appending a key=value pair to the base URI. For HTTP POST, the query parameters are encoded as content with media type application/x-www-form-urlencoded and sent in the request body. The base URI MAY accept other query languages and media types in the request body, e.g. application/sparql-query for SPARQL queries.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "queryBase", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Query_Capability" }, { "@id" : "http://open-services.net/ns/core#queryCapability", "@type" : "rdf:Property", "comment" : "Enables clients query across a collection of resources.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "queryCapability", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service" }, { "@id" : "http://open-services.net/ns/core#range", "@type" : "rdf:Property", "comment" : "For properties with a resource value-type, Providers MAY also specify the range of possible resource types allowed, each specified by URI. The default range is http://open-services.net/ns/core#Any.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "range", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#readOnly", "@type" : "rdf:Property", "comment" : "true if the property is read-only. If omitted, or set to false, then the property is writable. Providers SHOULD declare a property read-only when changes to the value of that property will not be accepted after the resource has been created, e.g. on PUT/PATCH requests. Consumers should note that the converse does not apply: Providers MAY reject a change to the value of a writable property.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "readOnly", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#rel", "@type" : "rdf:Property", "comment" : "If present and set to 'alternate' then indicates that work-around is provided, behavior for other values is undefined.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "rel", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Extended_Error" }, { "@id" : "http://open-services.net/ns/core#representation", "@type" : "rdf:Property", "comment" : "Should be http://open-services.net/ns/core#Reference, http://open-services.net/ns/core#Inline or http://open-services.net/ns/core#Either", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "representation", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#resourceShape", "@type" : "rdf:Property", "comment" : "A Creation Factory MAY provide Resource Shapes that describe shapes of resources that may be created.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "resourceShape", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Creation_Factory" }, { "@id" : "http://open-services.net/ns/core#resourceType", "@type" : "rdf:Property", "comment" : "The expected resource type URI of the resource that will be created using this creation factory. These would be the URIs found in the result resource's rdf:type property.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "resourceType", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Creation_Factory" }, { "@id" : "http://open-services.net/ns/core#results", "@type" : "rdf:Property", "comment" : "Used to hold the results of dialog action or JSON query results (default).\n\t\tThe JSON query result attribute 'oslc:results' is used whenever a provider doesn't have\n\t\ta suitable property already in its model for such purposes.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "results", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#selectionDialog", "@type" : "rdf:Property", "comment" : "Enables clients to select a resource via UI.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "selectionDialog", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service" }, { "@id" : "http://open-services.net/ns/core#service", "@type" : "rdf:Property", "comment" : "Describes a service offered by the service provider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "service", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service_Provider" }, { "@id" : "http://open-services.net/ns/core#serviceProvider", "@type" : "rdf:Property", "comment" : "A link to the resource's OSLC Service Provider.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "serviceProvider", "seeAlso" : "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#OSLC_Properties" }, { "@id" : "http://open-services.net/ns/core#serviceProviderCatalog", "@type" : "rdf:Property", "comment" : "Additional service provider catalog.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "serviceProviderCatalog", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Service_Provider_Catalog" }, { "@id" : "http://open-services.net/ns/core#shortId", "@type" : "rdf:Property", "comment" : "Shorter form of dcterms:identifier for the resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "shortId", "seeAlso" : "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#OSLC_Properties" }, { "@id" : "http://open-services.net/ns/core#shortTitle", "@type" : "rdf:Property", "comment" : "Shorter form of dcterms:title for the resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "shortTitle", "seeAlso" : "http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA#OSLC_Properties" }, { "@id" : "http://open-services.net/ns/core#smallPreview", "comment" : "URI and sizing properties for an HTML document to be used for a small preview.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "smallPreview", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreUiPreview#Representation_Compact" }, { "@id" : "http://open-services.net/ns/core#statusCode", "@type" : "rdf:Property", "comment" : "The HTTP status code reported with the error.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "statusCode", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Error" }, { "@id" : "http://open-services.net/ns/core#totalCount", "@type" : "rdf:Property", "comment" : "This optional property indicates the total number of results across all pages, \n\t\tits value should be non-negative. In the context of a query resource, this value SHOULD \n\t\tbe the total number of results, i.e. the number of resources that match the query. \n\t\tIn the context of other resources, the value SHOULD be the total number of property \n\t\tvalues (i.e. RDF triples) of the resource. Unless Stable Paging is in effect, the \n\t\ttotal count MAY vary as a client retrieves subsequent pages.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "totalCount", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Response_Information" }, { "@id" : "http://open-services.net/ns/core#usage", "@type" : "rdf:Property", "comment" : "An identifier URI for the domain specified usage of this creation factory. If a service provides multiple creation factories, it may designate the primary or default one that should be used with a property value of http://open-services.net/ns/core#default.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "usage", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification#Resource_Creation_Factory" }, { "@id" : "http://open-services.net/ns/core#valueShape", "@type" : "rdf:Property", "comment" : "if the value-type is a resource type, then Property MAY provide a shape value to indicate the Resource Shape that applies to the resource.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "valueShape", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core#valueType", "@type" : "rdf:Property", "comment" : "A URI that indicates the value type, for example XML Schema or RDF URIs for literal value types, and OSLC-specified for others. If this property is omitted, then the value type is unconstrained.", "isDefinedBy" : "http://open-services.net/ns/core#", "label" : "valueType", "seeAlso" : "http://open-services.net/bin/view/Main/OslcCoreSpecification" }, { "@id" : "http://open-services.net/ns/core/core.rdf", "nature" : "http://www.w3.org/2000/01/rdf-schema#" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "source" : { "@id" : "http://purl.org/dc/terms/source", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description", "@type" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "nature" : { "@id" : "http://www.rddl.org/nature", "@type" : "@id" }, "range" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#range", "@type" : "@id" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "rddl" : "http://www.rddl.org/" } }

. "Representations is either a URI reference or blank node." . "Either" . . . "This optional property indicates the total number of results across all pages, \n\t\tits value should be non-negative. In the context of a query resource, this value SHOULD \n\t\tbe the total number of results, i.e. the number of resources that match the query. \n\t\tIn the context of other resources, the value SHOULD be the total number of property \n\t\tvalues (i.e. RDF triples) of the resource. Unless Stable Paging is in effect, the \n\t\ttotal count MAY vary as a client retrieves subsequent pages." . "totalCount" . . . . "The CreationFactory definition included in a ServiceProvider." . "CreationFactory" . . . . "For properties with a resource value-type, Providers MAY also specify the range of possible resource types allowed, each specified by URI. The default range is http://open-services.net/ns/core#Any." . "range" . . . . "A hint that indicates that property MAY be hidden when presented in a user interface." . "hidden" . . . . "The properties that are allowed or required by this shape." . "property" . . . . "The UI Preview representation." . "Preview" . . . . "Reference to owning Discussion resource ." . "partOfDiscussion" . . . . "Enables clients to create a resource via UI." . "creationDialog" . . . . "To create a new resource via the factory, post it to this URI." . "creation" . . . . "Property is optional and multi-valued." . "Zero-or-many" . . . "Local Resource: value is an resource available only inside the resource being defined (i.e. a Blank Node)." . "LocalResource" . . . "The expected resource type URI of the resource that will be created using this creation factory. These would be the URIs found in the result resource's rdf:type property." . "resourceType" . . . . "Used in conjunction with oslc:usage property used to identify\n\t\twhich service is the default usage." . "default" . . . "The Publisher definition included in ServiceProvider." . "Publisher" . . . . "A default value for property, inlined into property definition." . "defaultValue" . . . . "Enables clients query across a collection of resources." . "queryCapability" . . . . "URL to an icon file that represents the provider. This icon should be a favicon format and 16x16 pixels in size." . "icon" . . . . "Name of property being defined, i.e. second part of property's Prefixed Name." . "name" . . . . "Used to hold the results of dialog action or JSON query results (default).\n\t\tThe JSON query result attribute 'oslc:results' is used whenever a provider doesn't have\n\t\ta suitable property already in its model for such purposes." . "results" . . . . "Very short label for use in menu items." . "label" . . . . "The Dialog definition included in ServiceProvider." . "Dialog" . . . . "Reference to associated resource." . "discussionAbout" . . . . "Comment about the resource." . "comment" . . . . "MUST be either http://open-services.net/ns/core#Exactly-one, http://open-services.net/ns/core#Zero-or-one, http://open-services.net/ns/core#Zero-or-many or http://open-services.net/ns/core#One-or-many." . "occurs" . . . . "URI for obtaining OAuth request token." . "oauthRequestTokenURI" . . . . "Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used." . "domain" . . . . "The HTTP status code reported with the error." . "statusCode" . . . . "The Service definition included in a ServiceProvider." . "Service" . . . . "A Property resource describes one allowed or required property of a resource." . "Property" . . . . "An inline (RDF blank node) representation." . "Inline" . . . "Basis for forming an error response." . "Error" . . . . "Property is required and multi-valued." . "One-or-many" . . . . "A predicate that links to an action that is not currently executable on the subject resource, \n\t\tbut may be executable in the future and/or on other resources. \n\t\tFor example, in OSLC Automation this is expected to link from an oslc_auto:AutomationPlan to an \n\t\toslc:Action resource with zero bindings (as it is not executable), \n\t\twith the meaning that the executable form of the action may be available on oslc_auto:AutomationResult resources \n\t\tgenerated by executing that Automation Plan. Similarly, resource shapes can allow discovery of actions\n\t\tavailable on the output of a creation factory.\n\t\t" . "futureAction" . . . . "The QueryCapability definition included in a ServiceProvider." . "QueryCapability" . . . . "Reference to comment this comment is in reply to." . "inReplyTo" . . . . "Should be http://open-services.net/ns/core#Reference, http://open-services.net/ns/core#Inline or http://open-services.net/ns/core#Either" . "representation" . . . . "Extended (additional) error information." . "extendedError" . . . . "For String properties only, specifies maximum characters allowed. If not set, then there is no maximum or maximum is specified elsewhere." . "maxSize" . . . . "A URI that indicates the value type, for example XML Schema or RDF URIs for literal value types, and OSLC-specified for others. If this property is omitted, then the value type is unconstrained." . "valueType" . . . . "URI and sizing properties for an HTML document to be used for a small preview." . "smallPreview" . . . . "Core" . . "\n\t\t\tAll vocabulary URIs defined in the OSLC Core namespace.\n\t\t"^^ . "The OSLC Core Vocabulary\n\t\t" . . . "An informative message describing the error that occurred." . "message" . . . . "Recommended initial height of the preview. The presence of this property indicates that the preview supports dynamically computing its size. Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1). Em and ex units are interpreted relative to the default system font (at 100% size). " . "initialHeight" . . . "A Comment resource represents a single note, or comment, in a discussion thread." . "Comment" . . . . "URI of the property whose usage is being described." . "propertyDefinition" . . . . "if the value-type is a resource type, then Property MAY provide a shape value to indicate the Resource Shape that applies to the resource." . "valueShape" . . . . "A resource giving more information on the error SHOULD be of an HTML content-type." . "moreInfo" . . . . "If present and set to 'alternate' then indicates that work-around is provided, behavior for other values is undefined." . "rel" . . . . "Used to define when a property is a member of a container, useful for query." . "isMemberProperty" . . . . "The Compact representation, fetched as application/x-oslc-compact+xml" . "Compact" . . . . "Enables clients to select a resource via UI." . "selectionDialog" . . . . "The URI of the dialog." . "dialog" . . . . "Extended error information." . "ExtendedError" . . . . "URI for obtaining OAuth authorization." . "authorizationURI" . . . . "A Creation Factory MAY provide Resource Shapes that describe shapes of resources that may be created." . "resourceShape" . . . . "The URI of an HTML document to be used for the preview." . "document" . . . "A link to the resource's OSLC Service Provider." . "serviceProvider" . . . . "Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size)." . "hintWidth" . . . . . . "The URI of a Resource Shape that describes the possible properties." . "instanceShape" . . . . "Any value type is allowed." . "Any" . . . . "This shape describes resources that are of the RDF type given by the object of the oslc:describes predicate. Formally, a shape S applies to a resource R if there is a triple R rdf:type T and there is a triple S oslc:describes T." . "describes" . . . . "The base URI to use for queries. Queries may be invoked either by HTTP GET or HTTP POST. For HTTP GET, a query URI is formed by appending a key=value pair to the base URI. For HTTP POST, the query parameters are encoded as content with media type application/x-www-form-urlencoded and sent in the request body. The base URI MAY accept other query languages and media types in the request body, e.g. application/sparql-query for SPARQL queries." . "queryBase" . . . . . "The URI of a resource describing the entity that most recently modified this resource. The link target is usually a foaf:Person or foaf:Agent, but could be any type. This is modeled after dcterms:creator, but Dublin Core currently has no equivalent property." . "modifiedBy" . . . . "The PrefixDefinition definition included in ServiceProvider." . "PrefixDefinition" . . . . "Link to next page of response." . "nextPage" . . . . "true if the property is read-only. If omitted, or set to false, then the property is writable. Providers SHOULD declare a property read-only when changes to the value of that property will not be accepted after the resource has been created, e.g. on PUT/PATCH requests. Consumers should note that the converse does not apply: Providers MAY reject a change to the value of a writable property." . "readOnly" . . . . "Additional service provider catalog." . "serviceProviderCatalog" . . . . "A Discussion resource is intended to represent a sequence of comments or notes regarding the associated resource" . "Discussion" . . . . . . "The Resource Shape used for creation, query and modify. Formally, a shape S applies to a resource R if there is a triple R rdf:type T and there is a triple S oslc:describes T, or if there is a triple R oslc:instanceShape S." . "ResourceShape" . . . . "A series of notes and comments about this resource." . "discussedBy" . . . . "URI and sizing properties for an HTML document to be used for a large preview." . "largePreview" . . . "The Service Provider resource" . "ServiceProvider" . . . . "Property is optional and single valued." . "Zero-or-one" . . . "The base URI of the namespace." . "prefixBase" . . . . "An identifier URI for the domain specified usage of this creation factory. If a service provides multiple creation factories, it may designate the primary or default one that should be used with a property value of http://open-services.net/ns/core#default." . "usage" . . . . "Shorter form of dcterms:title for the resource." . "shortTitle" . . . . "URI for obtaining OAuth access token." . "oauthAccessTokenURI" . . . . "Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size)." . "hintHeight" . . . . "Defines the three OAuth URIs required for a client to act as an OAuth consumer." . "oauthConfiguration" . . . . "Allowed values for one property." . "AllowedValues" . . . . "A URL that may be used to retrieve a web page to determine additional details about the service provider." . "details" . . . . "Describes a service offered by the service provider." . "service" . . . . "Enables clients to create new resources." . "creationFactory" . . . . "The OAuthConfiguration definition included in ServiceProvider." . "OAuthConfiguration" . . . . "value allowed for a property." . "allowedValue" . . . . . "Link from a currently available action to the future action it realizes.\n\t\t" . "executes" . . . . "A URI Reference representation to a resource." . "Reference" . . . "Namespace prefix to be used for this namespace." . "prefix" . . . . "Property with value is required." . "Exactly-one" . . . "AnyResource: value is either a Resource or Local Resource." . "AnyResource" . . . "Resource: value is a resource at a specified URI (i.e. a URI Reference)." . "Resource" . . . . "Resource with allowed values for the property being defined. Range of oslc:AllowedValues" . "allowedValues" . . . . "Defines a namespace prefix for use in JSON representations and in forming OSLC Query Syntax strings." . "prefixDefinition" . . . . "Shorter form of dcterms:identifier for the resource." . "shortId" . . . . "The Service Provider Catalog resource" . "ServiceProviderCatalog" . . . . "The ResponseInfo included in query results." . "ResponseInfo" . . .

The OSLC Core Vocabulary All vocabulary URIs defined in the OSLC Core namespace. Core ServiceProvider The Service Provider resource ServiceProviderCatalog The Service Provider Catalog resource ResponseInfo The ResponseInfo included in query results. Service The Service definition included in a ServiceProvider. CreationFactory The CreationFactory definition included in a ServiceProvider. QueryCapability The QueryCapability definition included in a ServiceProvider. Dialog The Dialog definition included in ServiceProvider. Publisher The Publisher definition included in ServiceProvider. PrefixDefinition The PrefixDefinition definition included in ServiceProvider. OAuthConfiguration The OAuthConfiguration definition included in ServiceProvider. Error Basis for forming an error response. ExtendedError Extended error information. ResourceShape The Resource Shape used for creation, query and modify. Formally, a shape S applies to a resource R if there is a triple R rdf:type T and there is a triple S oslc:describes T, or if there is a triple R oslc:instanceShape S. AllowedValues Allowed values for one property. Property A Property resource describes one allowed or required property of a resource. Comment A Comment resource represents a single note, or comment, in a discussion thread. Discussion A Discussion resource is intended to represent a sequence of comments or notes regarding the associated resource Preview The UI Preview representation. Compact The Compact representation, fetched as application/x-oslc-compact+xml serviceProvider A link to the resource's OSLC Service Provider. instanceShape The URI of a Resource Shape that describes the possible properties. shortTitle Shorter form of dcterms:title for the resource. shortId Shorter form of dcterms:identifier for the resource. discussedBy A series of notes and comments about this resource. modifiedBy The URI of a resource describing the entity that most recently modified this resource. The link target is usually a foaf:Person or foaf:Agent, but could be any type. This is modeled after dcterms:creator, but Dublin Core currently has no equivalent property. partOfDiscussion Reference to owning Discussion resource . inReplyTo Reference to comment this comment is in reply to. discussionAbout Reference to associated resource. comment Comment about the resource. oauthRequestTokenURI URI for obtaining OAuth request token. authorizationURI URI for obtaining OAuth authorization. oauthAccessTokenURI URI for obtaining OAuth access token. prefix Namespace prefix to be used for this namespace. prefixBase The base URI of the namespace. domain Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used. creationFactory Enables clients to create new resources. queryCapability Enables clients query across a collection of resources. selectionDialog Enables clients to select a resource via UI. creationDialog Enables clients to create a resource via UI. service Describes a service offered by the service provider. details A URL that may be used to retrieve a web page to determine additional details about the service provider. prefixDefinition Defines a namespace prefix for use in JSON representations and in forming OSLC Query Syntax strings. oauthConfiguration Defines the three OAuth URIs required for a client to act as an OAuth consumer. serviceProviderCatalog Additional service provider catalog. label Very short label for use in menu items. icon URL to an icon file that represents the provider. This icon should be a favicon format and 16x16 pixels in size. creation To create a new resource via the factory, post it to this URI. resourceShape A Creation Factory MAY provide Resource Shapes that describe shapes of resources that may be created. resourceType The expected resource type URI of the resource that will be created using this creation factory. These would be the URIs found in the result resource's rdf:type property. usage An identifier URI for the domain specified usage of this creation factory. If a service provides multiple creation factories, it may designate the primary or default one that should be used with a property value of http://open-services.net/ns/core#default. queryBase The base URI to use for queries. Queries may be invoked either by HTTP GET or HTTP POST. For HTTP GET, a query URI is formed by appending a key=value pair to the base URI. For HTTP POST, the query parameters are encoded as content with media type application/x-www-form-urlencoded and sent in the request body. The base URI MAY accept other query languages and media types in the request body, e.g. application/sparql-query for SPARQL queries. dialog The URI of the dialog. hintWidth Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size). hintHeight Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size). statusCode The HTTP status code reported with the error. message An informative message describing the error that occurred. extendedError Extended (additional) error information. moreInfo A resource giving more information on the error SHOULD be of an HTML content-type. rel If present and set to 'alternate' then indicates that work-around is provided, behavior for other values is undefined. results Used to hold the results of dialog action or JSON query results (default). The JSON query result attribute 'oslc:results' is used whenever a provider doesn't have a suitable property already in its model for such purposes. totalCount This optional property indicates the total number of results across all pages, its value should be non-negative. In the context of a query resource, this value SHOULD be the total number of results, i.e. the number of resources that match the query. In the context of other resources, the value SHOULD be the total number of property values (i.e. RDF triples) of the resource. Unless Stable Paging is in effect, the total count MAY vary as a client retrieves subsequent pages. nextPage Link to next page of response. describes This shape describes resources that are of the RDF type given by the object of the oslc:describes predicate. Formally, a shape S applies to a resource R if there is a triple R rdf:type T and there is a triple S oslc:describes T. property The properties that are allowed or required by this shape. allowedValue value allowed for a property. allowedValues Resource with allowed values for the property being defined. Range of oslc:AllowedValues defaultValue A default value for property, inlined into property definition. hidden A hint that indicates that property MAY be hidden when presented in a user interface. isMemberProperty Used to define when a property is a member of a container, useful for query. name Name of property being defined, i.e. second part of property's Prefixed Name. maxSize For String properties only, specifies maximum characters allowed. If not set, then there is no maximum or maximum is specified elsewhere. occurs MUST be either http://open-services.net/ns/core#Exactly-one, http://open-services.net/ns/core#Zero-or-one, http://open-services.net/ns/core#Zero-or-many or http://open-services.net/ns/core#One-or-many. propertyDefinition URI of the property whose usage is being described. range For properties with a resource value-type, Providers MAY also specify the range of possible resource types allowed, each specified by URI. The default range is http://open-services.net/ns/core#Any. readOnly true if the property is read-only. If omitted, or set to false, then the property is writable. Providers SHOULD declare a property read-only when changes to the value of that property will not be accepted after the resource has been created, e.g. on PUT/PATCH requests. Consumers should note that the converse does not apply: Providers MAY reject a change to the value of a writable property. representation Should be http://open-services.net/ns/core#Reference, http://open-services.net/ns/core#Inline or http://open-services.net/ns/core#Either valueType A URI that indicates the value type, for example XML Schema or RDF URIs for literal value types, and OSLC-specified for others. If this property is omitted, then the value type is unconstrained. valueShape if the value-type is a resource type, then Property MAY provide a shape value to indicate the Resource Shape that applies to the resource. smallPreview URI and sizing properties for an HTML document to be used for a small preview. largePreview URI and sizing properties for an HTML document to be used for a large preview. document The URI of an HTML document to be used for the preview. initialHeight Recommended initial height of the preview. The presence of this property indicates that the preview supports dynamically computing its size. Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1). Em and ex units are interpreted relative to the default system font (at 100% size). Resource Resource: value is a resource at a specified URI (i.e. a URI Reference). LocalResource Local Resource: value is an resource available only inside the resource being defined (i.e. a Blank Node). AnyResource AnyResource: value is either a Resource or Local Resource. Reference A URI Reference representation to a resource. Inline An inline (RDF blank node) representation. Either Representations is either a URI reference or blank node. Exactly-one Property with value is required. Zero-or-one Property is optional and single valued. Zero-or-many Property is optional and multi-valued. One-or-many Property is required and multi-valued. Any Any value type is allowed. default Used in conjunction with oslc:usage property used to identify which service is the default usage. futureAction A predicate that links to an action that is not currently executable on the subject resource, but may be executable in the future and/or on other resources. For example, in OSLC Automation this is expected to link from an oslc_auto:AutomationPlan to an oslc:Action resource with zero bindings (as it is not executable), with the meaning that the executable form of the action may be available on oslc_auto:AutomationResult resources generated by executing that Automation Plan. Similarly, resource shapes can allow discovery of actions available on the output of a creation factory. executes Link from a currently available action to the future action it realizes.

@prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix rdfs: . @prefix rddl: . rdfs:comment "Representations is either a URI reference or blank node." ; rdfs:isDefinedBy ; rdfs:label "Either" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "This optional property indicates the total number of results across all pages, \n\t\tits value should be non-negative. In the context of a query resource, this value SHOULD \n\t\tbe the total number of results, i.e. the number of resources that match the query. \n\t\tIn the context of other resources, the value SHOULD be the total number of property \n\t\tvalues (i.e. RDF triples) of the resource. Unless Stable Paging is in effect, the \n\t\ttotal count MAY vary as a client retrieves subsequent pages." ; rdfs:isDefinedBy ; rdfs:label "totalCount" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The CreationFactory definition included in a ServiceProvider." ; rdfs:isDefinedBy ; rdfs:label "CreationFactory" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "For properties with a resource value-type, Providers MAY also specify the range of possible resource types allowed, each specified by URI. The default range is http://open-services.net/ns/core#Any." ; rdfs:isDefinedBy ; rdfs:label "range" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A hint that indicates that property MAY be hidden when presented in a user interface." ; rdfs:isDefinedBy ; rdfs:label "hidden" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The properties that are allowed or required by this shape." ; rdfs:isDefinedBy ; rdfs:label "property" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The UI Preview representation." ; rdfs:isDefinedBy ; rdfs:label "Preview" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Reference to owning Discussion resource ." ; rdfs:isDefinedBy ; rdfs:label "partOfDiscussion" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Enables clients to create a resource via UI." ; rdfs:isDefinedBy ; rdfs:label "creationDialog" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "To create a new resource via the factory, post it to this URI." ; rdfs:isDefinedBy ; rdfs:label "creation" ; rdfs:seeAlso . rdfs:comment "Property is optional and multi-valued." ; rdfs:isDefinedBy ; rdfs:label "Zero-or-many" ; rdfs:seeAlso . rdfs:comment "Local Resource: value is an resource available only inside the resource being defined (i.e. a Blank Node)." ; rdfs:isDefinedBy ; rdfs:label "LocalResource" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The expected resource type URI of the resource that will be created using this creation factory. These would be the URIs found in the result resource's rdf:type property." ; rdfs:isDefinedBy ; rdfs:label "resourceType" ; rdfs:seeAlso . rdfs:comment "Used in conjunction with oslc:usage property used to identify\n\t\twhich service is the default usage." ; rdfs:isDefinedBy ; rdfs:label "default" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Publisher definition included in ServiceProvider." ; rdfs:isDefinedBy ; rdfs:label "Publisher" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A default value for property, inlined into property definition." ; rdfs:isDefinedBy ; rdfs:label "defaultValue" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Enables clients query across a collection of resources." ; rdfs:isDefinedBy ; rdfs:label "queryCapability" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "URL to an icon file that represents the provider. This icon should be a favicon format and 16x16 pixels in size." ; rdfs:isDefinedBy ; rdfs:label "icon" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Name of property being defined, i.e. second part of property's Prefixed Name." ; rdfs:isDefinedBy ; rdfs:label "name" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Used to hold the results of dialog action or JSON query results (default).\n\t\tThe JSON query result attribute 'oslc:results' is used whenever a provider doesn't have\n\t\ta suitable property already in its model for such purposes." ; rdfs:isDefinedBy ; rdfs:label "results" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Very short label for use in menu items." ; rdfs:isDefinedBy ; rdfs:label "label" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Dialog definition included in ServiceProvider." ; rdfs:isDefinedBy ; rdfs:label "Dialog" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Reference to associated resource." ; rdfs:isDefinedBy ; rdfs:label "discussionAbout" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Comment about the resource." ; rdfs:isDefinedBy ; rdfs:label "comment" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "MUST be either http://open-services.net/ns/core#Exactly-one, http://open-services.net/ns/core#Zero-or-one, http://open-services.net/ns/core#Zero-or-many or http://open-services.net/ns/core#One-or-many." ; rdfs:isDefinedBy ; rdfs:label "occurs" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "URI for obtaining OAuth request token." ; rdfs:isDefinedBy ; rdfs:label "oauthRequestTokenURI" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used." ; rdfs:isDefinedBy ; rdfs:label "domain" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The HTTP status code reported with the error." ; rdfs:isDefinedBy ; rdfs:label "statusCode" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Service definition included in a ServiceProvider." ; rdfs:isDefinedBy ; rdfs:label "Service" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "A Property resource describes one allowed or required property of a resource." ; rdfs:isDefinedBy ; rdfs:label "Property" ; rdfs:seeAlso . rdfs:comment "An inline (RDF blank node) representation." ; rdfs:isDefinedBy ; rdfs:label "Inline" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "Basis for forming an error response." ; rdfs:isDefinedBy ; rdfs:label "Error" ; rdfs:seeAlso . rdfs:comment "Property is required and multi-valued." ; rdfs:isDefinedBy ; rdfs:label "One-or-many" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A predicate that links to an action that is not currently executable on the subject resource, \n\t\tbut may be executable in the future and/or on other resources. \n\t\tFor example, in OSLC Automation this is expected to link from an oslc_auto:AutomationPlan to an \n\t\toslc:Action resource with zero bindings (as it is not executable), \n\t\twith the meaning that the executable form of the action may be available on oslc_auto:AutomationResult resources \n\t\tgenerated by executing that Automation Plan. Similarly, resource shapes can allow discovery of actions\n\t\tavailable on the output of a creation factory.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "futureAction" ; rdfs:seeAlso , . a rdfs:Class ; rdfs:comment "The QueryCapability definition included in a ServiceProvider." ; rdfs:isDefinedBy ; rdfs:label "QueryCapability" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Reference to comment this comment is in reply to." ; rdfs:isDefinedBy ; rdfs:label "inReplyTo" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Should be http://open-services.net/ns/core#Reference, http://open-services.net/ns/core#Inline or http://open-services.net/ns/core#Either" ; rdfs:isDefinedBy ; rdfs:label "representation" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Extended (additional) error information." ; rdfs:isDefinedBy ; rdfs:label "extendedError" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "For String properties only, specifies maximum characters allowed. If not set, then there is no maximum or maximum is specified elsewhere." ; rdfs:isDefinedBy ; rdfs:label "maxSize" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A URI that indicates the value type, for example XML Schema or RDF URIs for literal value types, and OSLC-specified for others. If this property is omitted, then the value type is unconstrained." ; rdfs:isDefinedBy ; rdfs:label "valueType" ; rdfs:seeAlso . rdfs:comment "URI and sizing properties for an HTML document to be used for a small preview." ; rdfs:isDefinedBy ; rdfs:label "smallPreview" ; rdfs:seeAlso . a owl:Ontology ; rdfs:label "Core" ; rdfs:seeAlso , ; dcterms:description "\n\t\t\tAll vocabulary URIs defined in the OSLC Core namespace.\n\t\t"^^rdf:XMLLiteral ; dcterms:source ; dcterms:title "The OSLC Core Vocabulary\n\t\t" . a rdf:Property ; rdfs:comment "An informative message describing the error that occurred." ; rdfs:isDefinedBy ; rdfs:label "message" ; rdfs:seeAlso . rdfs:comment "Recommended initial height of the preview. The presence of this property indicates that the preview supports dynamically computing its size. Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1). Em and ex units are interpreted relative to the default system font (at 100% size). " ; rdfs:isDefinedBy ; rdfs:label "initialHeight" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "A Comment resource represents a single note, or comment, in a discussion thread." ; rdfs:isDefinedBy ; rdfs:label "Comment" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "URI of the property whose usage is being described." ; rdfs:isDefinedBy ; rdfs:label "propertyDefinition" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "if the value-type is a resource type, then Property MAY provide a shape value to indicate the Resource Shape that applies to the resource." ; rdfs:isDefinedBy ; rdfs:label "valueShape" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A resource giving more information on the error SHOULD be of an HTML content-type." ; rdfs:isDefinedBy ; rdfs:label "moreInfo" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "If present and set to 'alternate' then indicates that work-around is provided, behavior for other values is undefined." ; rdfs:isDefinedBy ; rdfs:label "rel" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Used to define when a property is a member of a container, useful for query." ; rdfs:isDefinedBy ; rdfs:label "isMemberProperty" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Compact representation, fetched as application/x-oslc-compact+xml" ; rdfs:isDefinedBy ; rdfs:label "Compact" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Enables clients to select a resource via UI." ; rdfs:isDefinedBy ; rdfs:label "selectionDialog" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The URI of the dialog." ; rdfs:isDefinedBy ; rdfs:label "dialog" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "Extended error information." ; rdfs:isDefinedBy ; rdfs:label "ExtendedError" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "URI for obtaining OAuth authorization." ; rdfs:isDefinedBy ; rdfs:label "authorizationURI" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A Creation Factory MAY provide Resource Shapes that describe shapes of resources that may be created." ; rdfs:isDefinedBy ; rdfs:label "resourceShape" ; rdfs:seeAlso . rdfs:comment "The URI of an HTML document to be used for the preview." ; rdfs:isDefinedBy ; rdfs:label "document" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A link to the resource's OSLC Service Provider." ; rdfs:isDefinedBy ; rdfs:label "serviceProvider" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size)." ; rdfs:isDefinedBy ; rdfs:label "hintWidth" ; rdfs:seeAlso . rddl:nature rdfs: . a rdf:Property ; rdfs:comment "The URI of a Resource Shape that describes the possible properties." ; rdfs:isDefinedBy ; rdfs:label "instanceShape" ; rdfs:seeAlso , . rdfs:comment "Any value type is allowed." ; rdfs:isDefinedBy ; rdfs:label "Any" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "This shape describes resources that are of the RDF type given by the object of the oslc:describes predicate. Formally, a shape S applies to a resource R if there is a triple R rdf:type T and there is a triple S oslc:describes T." ; rdfs:isDefinedBy ; rdfs:label "describes" ; rdfs:seeAlso , . a rdf:Property ; rdfs:comment "The base URI to use for queries. Queries may be invoked either by HTTP GET or HTTP POST. For HTTP GET, a query URI is formed by appending a key=value pair to the base URI. For HTTP POST, the query parameters are encoded as content with media type application/x-www-form-urlencoded and sent in the request body. The base URI MAY accept other query languages and media types in the request body, e.g. application/sparql-query for SPARQL queries." ; rdfs:isDefinedBy ; rdfs:label "queryBase" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The URI of a resource describing the entity that most recently modified this resource. The link target is usually a foaf:Person or foaf:Agent, but could be any type. This is modeled after dcterms:creator, but Dublin Core currently has no equivalent property." ; rdfs:isDefinedBy ; rdfs:label "modifiedBy" ; rdfs:seeAlso , . a rdfs:Class ; rdfs:comment "The PrefixDefinition definition included in ServiceProvider." ; rdfs:isDefinedBy ; rdfs:label "PrefixDefinition" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Link to next page of response." ; rdfs:isDefinedBy ; rdfs:label "nextPage" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "true if the property is read-only. If omitted, or set to false, then the property is writable. Providers SHOULD declare a property read-only when changes to the value of that property will not be accepted after the resource has been created, e.g. on PUT/PATCH requests. Consumers should note that the converse does not apply: Providers MAY reject a change to the value of a writable property." ; rdfs:isDefinedBy ; rdfs:label "readOnly" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Additional service provider catalog." ; rdfs:isDefinedBy ; rdfs:label "serviceProviderCatalog" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "A Discussion resource is intended to represent a sequence of comments or notes regarding the associated resource" ; rdfs:isDefinedBy ; rdfs:label "Discussion" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Resource Shape used for creation, query and modify. Formally, a shape S applies to a resource R if there is a triple R rdf:type T and there is a triple S oslc:describes T, or if there is a triple R oslc:instanceShape S." ; rdfs:isDefinedBy ; rdfs:label "ResourceShape" ; rdfs:seeAlso , , . a rdf:Property ; rdfs:comment "A series of notes and comments about this resource." ; rdfs:isDefinedBy ; rdfs:label "discussedBy" ; rdfs:seeAlso . rdfs:comment "URI and sizing properties for an HTML document to be used for a large preview." ; rdfs:isDefinedBy ; rdfs:label "largePreview" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Service Provider resource" ; rdfs:isDefinedBy ; rdfs:label "ServiceProvider" ; rdfs:seeAlso . rdfs:comment "Property is optional and single valued." ; rdfs:isDefinedBy ; rdfs:label "Zero-or-one" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The base URI of the namespace." ; rdfs:isDefinedBy ; rdfs:label "prefixBase" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "An identifier URI for the domain specified usage of this creation factory. If a service provides multiple creation factories, it may designate the primary or default one that should be used with a property value of http://open-services.net/ns/core#default." ; rdfs:isDefinedBy ; rdfs:label "usage" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Shorter form of dcterms:title for the resource." ; rdfs:isDefinedBy ; rdfs:label "shortTitle" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "URI for obtaining OAuth access token." ; rdfs:isDefinedBy ; rdfs:label "oauthAccessTokenURI" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size)." ; rdfs:isDefinedBy ; rdfs:label "hintHeight" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Defines the three OAuth URIs required for a client to act as an OAuth consumer." ; rdfs:isDefinedBy ; rdfs:label "oauthConfiguration" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "Allowed values for one property." ; rdfs:isDefinedBy ; rdfs:label "AllowedValues" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "A URL that may be used to retrieve a web page to determine additional details about the service provider." ; rdfs:isDefinedBy ; rdfs:label "details" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Describes a service offered by the service provider." ; rdfs:isDefinedBy ; rdfs:label "service" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Enables clients to create new resources." ; rdfs:isDefinedBy ; rdfs:label "creationFactory" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The OAuthConfiguration definition included in ServiceProvider." ; rdfs:isDefinedBy ; rdfs:label "OAuthConfiguration" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "value allowed for a property." ; rdfs:isDefinedBy ; rdfs:label "allowedValue" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Link from a currently available action to the future action it realizes.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "executes" ; rdfs:seeAlso , . rdfs:comment "A URI Reference representation to a resource." ; rdfs:isDefinedBy ; rdfs:label "Reference" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Namespace prefix to be used for this namespace." ; rdfs:isDefinedBy ; rdfs:label "prefix" ; rdfs:seeAlso . rdfs:comment "Property with value is required." ; rdfs:isDefinedBy ; rdfs:label "Exactly-one" ; rdfs:seeAlso . rdfs:comment "AnyResource: value is either a Resource or Local Resource." ; rdfs:isDefinedBy ; rdfs:label "AnyResource" ; rdfs:seeAlso . rdfs:comment "Resource: value is a resource at a specified URI (i.e. a URI Reference)." ; rdfs:isDefinedBy ; rdfs:label "Resource" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Resource with allowed values for the property being defined. Range of oslc:AllowedValues" ; rdfs:isDefinedBy ; rdfs:label "allowedValues" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Defines a namespace prefix for use in JSON representations and in forming OSLC Query Syntax strings." ; rdfs:isDefinedBy ; rdfs:label "prefixDefinition" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Shorter form of dcterms:identifier for the resource." ; rdfs:isDefinedBy ; rdfs:label "shortId" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The Service Provider Catalog resource" ; rdfs:isDefinedBy ; rdfs:label "ServiceProviderCatalog" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The ResponseInfo included in query results." ; rdfs:isDefinedBy ; rdfs:label "ResponseInfo" ; rdfs:seeAlso .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/ems#", "@type" : "owl:Ontology", "description" : "This is the RDF Schema for the EMS vocabulary\n\t\t\tdefined\n\t\t\tin the EMS namespace. This document is under construction.\n\t\t", "title" : "The OSLC Estimation and Measurement Vocabulary (EMS)\n\t\t", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsVocabulary" }, { "@id" : "http://open-services.net/ns/ems#Baseline", "@type" : "rdfs:Class", "comment" : "The class of EMS baselines.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "Baseline", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsBaseline" }, { "@id" : "http://open-services.net/ns/ems#BaselineList", "@type" : "rdfs:Class", "comment" : "The class of EMS baseline lists.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "BaselineList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsBaselineList" }, { "@id" : "http://open-services.net/ns/ems#Estimate", "@type" : "rdfs:Class", "comment" : "The class of EMS estimates.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "Estimate", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEstimate" }, { "@id" : "http://open-services.net/ns/ems#EstimateList", "@type" : "rdfs:Class", "comment" : "The class of EMS estimate lists.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "EstimateList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEstimateList" }, { "@id" : "http://open-services.net/ns/ems#Measurement", "@type" : "rdfs:Class", "comment" : "The class of EMS measurements.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "Measurement", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsMeasurement" }, { "@id" : "http://open-services.net/ns/ems#MeasurementList", "@type" : "rdfs:Class", "comment" : "The class of EMS measurement lists.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "MeasurementList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsMeasurementList" }, { "@id" : "http://open-services.net/ns/ems#Project", "@type" : "rdfs:Class", "comment" : "The class of EMS projects.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "Project", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsProject" }, { "@id" : "http://open-services.net/ns/ems#ProjectList", "@type" : "rdfs:Class", "comment" : "The class of EMS project lists.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "ProjectList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsProjectList" }, { "@id" : "http://open-services.net/ns/ems#Scenario", "@type" : "rdfs:Class", "comment" : "The class of EMS scenarios.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "Scenario", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsScenario" }, { "@id" : "http://open-services.net/ns/ems#ScenarioList", "@type" : "rdfs:Class", "comment" : "The class of EMS scenario lists.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "ScenarioList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsScenarioList" }, { "@id" : "http://open-services.net/ns/ems#Service", "@type" : "rdfs:Class", "comment" : "The class of EMS services.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "Service", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsService" }, { "@id" : "http://open-services.net/ns/ems#baselineList", "@type" : "rdf:Property", "comment" : "The object is an instance of BaselineList.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "baselineList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsService" }, { "@id" : "http://open-services.net/ns/ems#estimateList", "@type" : "rdf:Property", "comment" : "The object is an instance of EstimateList.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "estimateList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsService" }, { "@id" : "http://open-services.net/ns/ems#measurementList", "@type" : "rdf:Property", "comment" : "The object is an instance of MeasurementList.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "measurementList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsService" }, { "@id" : "http://open-services.net/ns/ems#memberBaseline", "@type" : "rdf:Property", "comment" : "The object is an instance of Baseline.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "memberBaseline", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsBaselineList" }, { "@id" : "http://open-services.net/ns/ems#memberEstimate", "@type" : "rdf:Property", "comment" : "The object is an instance of Estimate.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "memberEstimate", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEstimateList" }, { "@id" : "http://open-services.net/ns/ems#memberMeasurement", "@type" : "rdf:Property", "comment" : "The object is an instance of Measurement.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "memberMeasurement", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsMeasurementList" }, { "@id" : "http://open-services.net/ns/ems#memberProject", "@type" : "rdf:Property", "comment" : "The object is an instance of Project.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "memberProject", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsProjectList" }, { "@id" : "http://open-services.net/ns/ems#memberScenario", "@type" : "rdf:Property", "comment" : "The object is an instance of Scenario.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "memberScenario", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsScenarioList" }, { "@id" : "http://open-services.net/ns/ems#projectList", "@type" : "rdf:Property", "comment" : "The object is an instance of ProjectList.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "projectList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsService" }, { "@id" : "http://open-services.net/ns/ems#scenarioList", "@type" : "rdf:Property", "comment" : "The object is an instance of ScenarioList.\n\t\t", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "scenarioList", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEmsService" }, { "@id" : "http://open-services.net/ns/ems#service", "@type" : "rdf:Property", "comment" : "The object is an instance of Service.", "isDefinedBy" : "http://open-services.net/ns/ems#", "label" : "service", "seeAlso" : "http://open-services.net/bin/view/Main/MetricsEMS10RestApiDataModel" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#" } }

. "The class of EMS scenarios." . "Scenario" . . . . "The object is an instance of BaselineList.\n\t\t" . "baselineList" . . . . "The object is an instance of MeasurementList.\n\t\t" . "measurementList" . . . . "The object is an instance of Baseline." . "memberBaseline" . . . . "The class of EMS estimate lists." . "EstimateList" . . . . "This is the RDF Schema for the EMS vocabulary\n\t\t\tdefined\n\t\t\tin the EMS namespace. This document is under construction.\n\t\t" . "The OSLC Estimation and Measurement Vocabulary (EMS)\n\t\t" . . . "The object is an instance of ScenarioList.\n\t\t" . "scenarioList" . . . . "The class of EMS estimates." . "Estimate" . . . . "The class of EMS project lists." . "ProjectList" . . . . "The object is an instance of ProjectList." . "projectList" . . . . "The class of EMS projects." . "Project" . . . . "The class of EMS baseline lists." . "BaselineList" . . . . "The class of EMS scenario lists." . "ScenarioList" . . . . "The class of EMS baselines." . "Baseline" . . . . "The object is an instance of Measurement." . "memberMeasurement" . . . . "The class of EMS services." . "Service" . . . . "The object is an instance of Scenario." . "memberScenario" . . . . "The object is an instance of EstimateList.\n\t\t" . "estimateList" . . . . "The object is an instance of Estimate." . "memberEstimate" . . . . "The object is an instance of Project." . "memberProject" . . . . "The class of EMS measurement lists." . "MeasurementList" . . . . "The class of EMS measurements." . "Measurement" . . . . "The object is an instance of Service." . "service" . . .

The OSLC Estimation and Measurement Vocabulary (EMS) This is the RDF Schema for the EMS vocabulary defined in the EMS namespace. This document is under construction. Service The class of EMS services. service The object is an instance of Service. Baseline The class of EMS baselines. BaselineList The class of EMS baseline lists. baselineList The object is an instance of BaselineList. memberBaseline The object is an instance of Baseline. Estimate The class of EMS estimates. EstimateList The class of EMS estimate lists. estimateList The object is an instance of EstimateList. memberEstimate The object is an instance of Estimate. Measurement The class of EMS measurements. MeasurementList The class of EMS measurement lists. measurementList The object is an instance of MeasurementList. memberMeasurement The object is an instance of Measurement. Project The class of EMS projects. ProjectList The class of EMS project lists. projectList The object is an instance of ProjectList. memberProject The object is an instance of Project. Scenario The class of EMS scenarios. ScenarioList The class of EMS scenario lists. scenarioList The object is an instance of ScenarioList. memberScenario The object is an instance of Scenario.

@prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix rdfs: . a rdfs:Class ; rdfs:comment "The class of EMS scenarios." ; rdfs:isDefinedBy ; rdfs:label "Scenario" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of BaselineList.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "baselineList" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of MeasurementList.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "measurementList" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of Baseline." ; rdfs:isDefinedBy ; rdfs:label "memberBaseline" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS estimate lists." ; rdfs:isDefinedBy ; rdfs:label "EstimateList" ; rdfs:seeAlso . a owl:Ontology ; rdfs:seeAlso ; dcterms:description "This is the RDF Schema for the EMS vocabulary\n\t\t\tdefined\n\t\t\tin the EMS namespace. This document is under construction.\n\t\t" ; dcterms:title "The OSLC Estimation and Measurement Vocabulary (EMS)\n\t\t" . a rdf:Property ; rdfs:comment "The object is an instance of ScenarioList.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "scenarioList" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS estimates." ; rdfs:isDefinedBy ; rdfs:label "Estimate" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS project lists." ; rdfs:isDefinedBy ; rdfs:label "ProjectList" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of ProjectList." ; rdfs:isDefinedBy ; rdfs:label "projectList" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS projects." ; rdfs:isDefinedBy ; rdfs:label "Project" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS baseline lists." ; rdfs:isDefinedBy ; rdfs:label "BaselineList" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS scenario lists." ; rdfs:isDefinedBy ; rdfs:label "ScenarioList" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS baselines." ; rdfs:isDefinedBy ; rdfs:label "Baseline" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of Measurement." ; rdfs:isDefinedBy ; rdfs:label "memberMeasurement" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS services." ; rdfs:isDefinedBy ; rdfs:label "Service" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of Scenario." ; rdfs:isDefinedBy ; rdfs:label "memberScenario" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of EstimateList.\n\t\t" ; rdfs:isDefinedBy ; rdfs:label "estimateList" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of Estimate." ; rdfs:isDefinedBy ; rdfs:label "memberEstimate" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of Project." ; rdfs:isDefinedBy ; rdfs:label "memberProject" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS measurement lists." ; rdfs:isDefinedBy ; rdfs:label "MeasurementList" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The class of EMS measurements." ; rdfs:isDefinedBy ; rdfs:label "Measurement" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "The object is an instance of Service." ; rdfs:isDefinedBy ; rdfs:label "service" ; rdfs:seeAlso .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/perfmon#", "@type" : "owl:Ontology", "description" : "All vocabulary\n URIs defined in the OSLC Performance Monitoring namespace.", "source" : "http://open-services.net/wiki/performance-monitoring/File:perfmon.rdf", "title" : "The OSLC Performance Monitoring Vocabulary", "label" : "Performance Monitoring", "seeAlso" : [ "http://open-services.net/wiki/performance-monitoring/File:perfmon.rdf", "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/" ] }, { "@id" : "pm:AvgJmsGetTime", "@type" : "rdfs:Class", "comment" : "Average time required for a system to respond to a Java Messaging Service GET request", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "AvgJmsGetTime", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:ResponseTimeMetrics", "pm:RequestMetrics" ] }, { "@id" : "pm:AvgLoginRequestFailures", "@type" : "rdfs:Class", "comment" : "Average login request failures", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "AvgLoginRequestFailures", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:FailureMetrics" }, { "@id" : "pm:AvgRequestFailures", "@type" : "rdfs:Class", "comment" : "Average request failures", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "AvgRequestFailures", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:FailureMetrics" }, { "@id" : "pm:BufferPoolHits", "@type" : "rdfs:Class", "comment" : "Buffer pool hits, e.g. hit ratio or count", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "BufferPoolHits", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:BufferPoolMetrics", "pm:ResourceUsageMetrics" ] }, { "@id" : "pm:BufferPoolMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for buffer pool-related metrics.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "BufferPoolMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:MemoryMetrics" }, { "@id" : "pm:CpuMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for CPU-related metrics.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "CpuMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:CpuSpeed", "@type" : "rdfs:Class", "comment" : "Speed of the CPU", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "CpuSpeed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:CpuMetrics", "pm:ResourceAvailabilityMetrics" ] }, { "@id" : "pm:CpuUsed", "@type" : "rdfs:Class", "comment" : "CPU used.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "CpuUsed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:CpuMetrics", "pm:ResourceUsageMetrics" ] }, { "@id" : "pm:DiskMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for disk-related metrics.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "DiskMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:DiskSpaceOverCommitAmount", "@type" : "rdfs:Class", "comment" : "Amount of disk space committed beyond the disk's capacity.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "DiskSpaceOverCommitAmount", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:DiskMetrics", "pm:ResourceExhaustionMetrics" ] }, { "@id" : "pm:DiskSpaceUsed", "@type" : "rdfs:Class", "comment" : "Disk space used.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "DiskSpaceUsed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:DiskMetrics", "pm:ResourceUsageMetrics" ] }, { "@id" : "pm:FailureMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for requests that fail.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "FailureMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:RequestMetrics" }, { "@id" : "pm:GarbageCollectionRequests", "@type" : "rdfs:Class", "comment" : "Garbage collection requests", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "GarbageCollectionRequests", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:RequestMetrics" }, { "@id" : "pm:HeapMemoryUsed", "@type" : "rdfs:Class", "comment" : "Heap memory used.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "HeapMemoryUsed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:MemoryMetrics", "pm:ResourceUsageMetrics" ] }, { "@id" : "pm:HighDepthQueueCount", "@type" : "rdfs:Class", "comment" : "", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "HighDepthQueueCount", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceExhaustionMetrics" }, { "@id" : "pm:HostedDatabases", "@type" : "rdfs:Class", "comment" : "Databases hosted, either absolute or relative to some maximum", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "HostedDatabases", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceUsageMetrics" }, { "@id" : "pm:LocalInboundConnections", "@type" : "rdfs:Class", "comment" : "Local inbound connections", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "LocalInboundConnections", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceUsageMetrics" }, { "@id" : "pm:LockListUsed", "@type" : "rdfs:Class", "comment" : "Lock usage", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "LockListUsed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceUsageMetrics" }, { "@id" : "pm:LogUsed", "@type" : "rdfs:Class", "comment" : "Amount of log used, either absolute or relative to some maximum", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "LogUsed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceUsageMetrics" }, { "@id" : "pm:LoginRequestFailures", "@type" : "rdfs:Class", "comment" : "Failed login requests", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "LoginRequestFailures", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:FailureMetrics" }, { "@id" : "pm:MemoryAvailableAfterGarbageCollection", "@type" : "rdfs:Class", "comment" : "Memory available following completion of a garbage collection request.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "MemoryAvailableAfterGarbageCollection", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:MemoryMetrics", "pm:ResourceAvailabilityMetrics" ] }, { "@id" : "pm:MemoryMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for memory-related metrics.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "MemoryMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:MessageCount", "@type" : "rdfs:Class", "comment" : "", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "MessageCount", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceUsageMetrics" }, { "@id" : "pm:Metric", "@type" : "rdfs:Class", "comment" : "Metric category for metrics defined in the Performance Monitoring vocabulary.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "Metric", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "ems:Metric" }, { "@id" : "pm:NetworkIOErrors", "@type" : "rdfs:Class", "comment" : "Network packets sent or received that did not complete successfully.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "NetworkIOErrors", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:FailureMetrics", "pm:NetworkMetrics" ] }, { "@id" : "pm:NetworkMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for network-related metrics.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "NetworkMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:NotRunning", "comment" : "Not running in its host environment", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "NotRunning", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Availability-Status-Property-Values" }, { "@id" : "pm:PerMinute", "@type" : [ "http://qudt.org/schema/qudt#TimeUnit", "rdfs:Class" ], "qudt:conversionMultiplier" : 60.0, "comment" : "Units for a quantity where a value of one represents 60 seconds of time.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "PerMinute", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure" }, { "@id" : "pm:PerformanceMonitoringRecord", "@type" : "rdfs:Class", "comment" : "A resource representing performance monitoring information", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "PerformanceMonitoringRecord", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Performance_Monitoring_Record" }, { "@id" : "pm:QueueDepth", "@type" : "rdfs:Class", "comment" : "Size/lenght/depth of a queue", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "QueueDepth", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:RequestMetrics" }, { "@id" : "pm:QueueFull", "@type" : "rdfs:Class", "comment" : "A queue filled to its maximum capacity", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "QueueFull", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceExhaustionMetrics" }, { "@id" : "pm:RealMemoryUsed", "@type" : "rdfs:Class", "comment" : "Real memory used.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "RealMemoryUsed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:MemoryMetrics", "pm:ResourceUsageMetrics" ] }, { "@id" : "pm:RemoteInboundConnections", "@type" : "rdfs:Class", "comment" : "Remote inbound connections", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "RemoteInboundConnections", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceUsageMetrics" }, { "@id" : "pm:RequestFailures", "@type" : "rdfs:Class", "comment" : "Request failures", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "RequestFailures", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:FailureMetrics" }, { "@id" : "pm:RequestMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for requests on a resource, originating from an end user or a system component.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "RequestMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:ResourceAvailabilityMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for metrics that show resource availability.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "ResourceAvailabilityMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:ResourceExhaustionMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for metrics that show resource consumption in excess of capacity.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "ResourceExhaustionMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:ResourceUsageMetrics" }, { "@id" : "pm:ResourceUsageMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for metrics that show resource usage.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "ResourceUsageMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:ResponseTime", "@type" : "rdfs:Class", "comment" : "Time required for some system to respond to a request", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "ResponseTime", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:ResponseTimeMetrics", "pm:RequestMetrics" ] }, { "@id" : "pm:ResponseTimeMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for metrics that show time it takes for a response to be returned to a request.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "ResponseTimeMetrics", "seeAlso" : [ "http://dbpedia.org/resource/Response_time_%28technology%29", "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories" ], "subClassOf" : "pm:RequestMetrics" }, { "@id" : "pm:Running", "comment" : "Running in its host environment", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "Running", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Availability-Status-Property-Values" }, { "@id" : "pm:SortOverflows", "@type" : "rdfs:Class", "comment" : "A sort's performance was impacted because the data to be sorted is large enough for it to overflow from (relatively) fast to (relatively) slow storage.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "SortOverflows", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceExhaustionMetrics" }, { "@id" : "pm:SqlStatmentFailures", "@type" : "rdfs:Class", "comment" : "SQL statements that failed", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "SqlStatmentFailures", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:FailureMetrics" }, { "@id" : "pm:TableSpaceFree", "@type" : "rdfs:Class", "comment" : "Table space free.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "TableSpaceFree", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceAvailabilityMetrics" }, { "@id" : "pm:TableSpaceUsed", "@type" : "rdfs:Class", "comment" : "Table space used.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "TableSpaceUsed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : "pm:ResourceUsageMetrics" }, { "@id" : "pm:ThreadPoolMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for thread pool-related metrics.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "ThreadPoolMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:TimeDatabaseThreadPoolExhausted", "@type" : "rdfs:Class", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "TimeDatabaseThreadPoolExhausted", "seeAlso" : [ "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#", "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure" ], "subClassOf" : [ "pm:ThreadPoolMetrics", "pm:ResourceExhaustionMetrics" ] }, { "@id" : "pm:TimeJCAThreadPoolExhausted", "@type" : "rdfs:Class", "comment" : "Time during which a Java Connection Architecture thread pool was fully utilized (no threads were free)", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "TimeJCAThreadPoolExhausted", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:ThreadPoolMetrics", "pm:ResourceExhaustionMetrics" ] }, { "@id" : "pm:TimeThreadPoolExhausted", "@type" : "rdfs:Class", "comment" : "Time during which a thread pool was fully utilized (no threads were free)", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "TimeThreadPoolExhausted", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:ThreadPoolMetrics", "pm:ResourceExhaustionMetrics" ] }, { "@id" : "pm:Unknown", "comment" : "Unknown status", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "Unknown", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Availability-Status-Property-Values" }, { "@id" : "pm:VirtualMemoryUsed", "@type" : "rdfs:Class", "comment" : "Virtual memory used.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "VirtualMemoryUsed", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:VirtualizationMetrics", "pm:MemoryMetrics", "pm:ResourceUsageMetrics" ] }, { "@id" : "pm:VirtualizationMetrics", "@type" : "rdfs:Class", "comment" : "Metric category for virtualization-related resource metrics.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "VirtualizationMetrics", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Metric-Categories", "subClassOf" : "pm:Metric" }, { "@id" : "pm:VmCpuReady", "@type" : "rdfs:Class", "comment" : "Amount of CPU ready from a virtual machine's point of view", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "VmCpuReady", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource.3A-ems.3AMeasure", "subClassOf" : [ "pm:ResourceAvailabilityMetrics", "pm:CpuMetrics", "pm:VirtualizationMetrics" ] }, { "@id" : "pm:availabilityStatus", "@type" : "rdf:Property", "comment" : "An indication of availability.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "availabilityStatus", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource-Properties" }, { "@id" : "pm:disk", "@type" : "rdf:Property", "comment" : "A disk attached, for example, to a computer system. Typically refers to a resource with type crtv:ComputerSystem, but it may refer to other resource types.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "disk", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource-Properties" }, { "@id" : "pm:mobilityEnabled", "@type" : "rdf:Property", "comment" : "An indication about whether the resource can move about dynamically.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "mobilityEnabled", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource-Properties" }, { "@id" : "pm:monitoringAgent", "@type" : "rdf:Property", "comment" : "Software that monitors a resource’s availability, performance, capacity, or utilization. Typically refers to a resource with type foaf:Agent, but it may refer to other resource types.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "monitoringAgent", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource-Properties" }, { "@id" : "pm:process", "@type" : "rdf:Property", "comment" : "A process running, for example, in a computer system. Typically refers to a resource with type crtv:ComputerSystem, but it may refer to other resource types.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "process", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource-Properties" }, { "@id" : "pm:tableReorganizationNeeded", "@type" : "rdf:Property", "comment" : "Indicates whether a database’s tables need to be reorganized.", "isDefinedBy" : "http://open-services.net/ns/perfmon#", "label" : "tableReorganizationNeeded", "seeAlso" : "http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-Specification-Version-2.0/#Resource-Properties" }, { "@id" : "http://open-services.net/wiki/performance-monitoring/File:perfmon.rdf", "nature" : "http://www.w3.org/2000/01/rdf-schema#" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "subClassOf" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#subClassOf", "@type" : "@id" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "qudtconversionMultiplier" : { "@id" : "http://qudt.org/1.1/schema/qudtconversionMultiplier", "@type" : "http://www.w3.org/2001/XMLSchema#double" }, "source" : { "@id" : "http://purl.org/dc/terms/source", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description", "@type" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "nature" : { "@id" : "http://www.rddl.org/nature", "@type" : "@id" }, "qudt" : "http://qudt.org/1.1/schema/qudt", "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "ems" : "http://open-services.net/ns/ems#", "pm" : "http://open-services.net/ns/perfmon#", "rddl" : "http://www.rddl.org/" } }

. "Virtual memory used." . "VirtualMemoryUsed" . . . . . . . "Metric category for CPU-related metrics." . "CpuMetrics" . . . . . "Time during which a Java Connection Architecture thread pool was fully utilized (no threads were free)" . "TimeJCAThreadPoolExhausted" . . . . . . "A process running, for example, in a computer system. Typically refers to a resource with type crtv:ComputerSystem, but it may refer to other resource types." . "process" . . . . "Not running in its host environment" . "NotRunning" . . . "Metric category for metrics that show resource usage." . "ResourceUsageMetrics" . . . . . "Metric category for network-related metrics." . "NetworkMetrics" . . . . . "Time required for some system to respond to a request" . "ResponseTime" . . . . . . "Software that monitors a resource’s availability, performance, capacity, or utilization. Typically refers to a resource with type foaf:Agent, but it may refer to other resource types." . "monitoringAgent" . . . . "Metric category for buffer pool-related metrics." . "BufferPoolMetrics" . . . . . "Time during which a thread pool was fully utilized (no threads were free)" . "TimeThreadPoolExhausted" . . . . . . "Table space free." . "TableSpaceFree" . . . . . "Network packets sent or received that did not complete successfully." . "NetworkIOErrors" . . . . . . "Buffer pool hits, e.g. hit ratio or count" . "BufferPoolHits" . . . . . . . "TimeDatabaseThreadPoolExhausted" . . . . . . "Request failures" . "RequestFailures" . . . . . "Amount of disk space committed beyond the disk's capacity." . "DiskSpaceOverCommitAmount" . . . . . . "Lock usage" . "LockListUsed" . . . . . "Failed login requests" . "LoginRequestFailures" . . . . . "An indication about whether the resource can move about dynamically." . "mobilityEnabled" . . . . "Local inbound connections" . "LocalInboundConnections" . . . . . "CPU used." . "CpuUsed" . . . . . . "Units for a quantity where a value of one represents 60 seconds of time." . "PerMinute" . . "60"^^ . . . . "Metric category for disk-related metrics." . "DiskMetrics" . . . . . "Metric category for memory-related metrics." . "MemoryMetrics" . . . . . "Size/lenght/depth of a queue" . "QueueDepth" . . . . . "Metric category for requests that fail." . "FailureMetrics" . . . . . "A disk attached, for example, to a computer system. Typically refers to a resource with type crtv:ComputerSystem, but it may refer to other resource types." . "disk" . . . . "Amount of log used, either absolute or relative to some maximum" . "LogUsed" . . . . . "Metric category for thread pool-related metrics." . "ThreadPoolMetrics" . . . . . "Speed of the CPU" . "CpuSpeed" . . . . . . "Disk space used." . "DiskSpaceUsed" . . . . . . "SQL statements that failed" . "SqlStatmentFailures" . . . . . "Average request failures" . "AvgRequestFailures" . . . . . "Average time required for a system to respond to a Java Messaging Service GET request" . "AvgJmsGetTime" . . . . . . "Running in its host environment" . "Running" . . . "Garbage collection requests" . "GarbageCollectionRequests" . . . . . "Metric category for requests on a resource, originating from an end user or a system component." . "RequestMetrics" . . . . . . . "Performance Monitoring" . "All vocabulary\n URIs defined in the OSLC Performance Monitoring namespace."^^ . "The OSLC Performance Monitoring Vocabulary" . . . "Metric category for metrics defined in the Performance Monitoring vocabulary." . "Metric" . . . . . "Amount of CPU ready from a virtual machine's point of view" . "VmCpuReady" . . . . . . . "Metric category for metrics that show resource consumption in excess of capacity." . "ResourceExhaustionMetrics" . . . . . "Remote inbound connections" . "RemoteInboundConnections" . . . . . "A queue filled to its maximum capacity" . "QueueFull" . . . . . "" . "MessageCount" . . . . . "Unknown status" . "Unknown" . . . "Table space used." . "TableSpaceUsed" . . . . . . "Metric category for metrics that show time it takes for a response to be returned to a request." . "ResponseTimeMetrics" . . . . . . "Metric category for virtualization-related resource metrics." . "VirtualizationMetrics" . . . . . "" . "HighDepthQueueCount" . . . . . "A resource representing performance monitoring information" . "PerformanceMonitoringRecord" . . . . "Metric category for metrics that show resource availability." . "ResourceAvailabilityMetrics" . . . . . "Heap memory used." . "HeapMemoryUsed" . . . . . . "Databases hosted, either absolute or relative to some maximum" . "HostedDatabases" . . . . . "Average login request failures" . "AvgLoginRequestFailures" . . . . . "Real memory used." . "RealMemoryUsed" . . . . . . "Indicates whether a database’s tables need to be reorganized." . "tableReorganizationNeeded" . . . . "Memory available following completion of a garbage collection request." . "MemoryAvailableAfterGarbageCollection" . . . . . . "A sort's performance was impacted because the data to be sorted is large enough for it to overflow from (relatively) fast to (relatively) slow storage." . "SortOverflows" . . . . . "An indication of availability." . "availabilityStatus" . . .

The OSLC Performance Monitoring Vocabulary All vocabulary URIs defined in the OSLC Performance Monitoring namespace. Performance Monitoring PerformanceMonitoringRecord A resource representing performance monitoring information Metric Metric category for metrics defined in the Performance Monitoring vocabulary. ResourceUsageMetrics Metric category for metrics that show resource usage. ResourceAvailabilityMetrics Metric category for metrics that show resource availability. ResourceExhaustionMetrics Metric category for metrics that show resource consumption in excess of capacity. ResponseTimeMetrics Metric category for metrics that show time it takes for a response to be returned to a request. RequestMetrics Metric category for requests on a resource, originating from an end user or a system component. CpuMetrics Metric category for CPU-related metrics. MemoryMetrics Metric category for memory-related metrics. DiskMetrics Metric category for disk-related metrics. NetworkMetrics Metric category for network-related metrics. ThreadPoolMetrics Metric category for thread pool-related metrics. BufferPoolMetrics Metric category for buffer pool-related metrics. VirtualizationMetrics Metric category for virtualization-related resource metrics. FailureMetrics Metric category for requests that fail. CpuUsed CPU used. VirtualMemoryUsed Virtual memory used. RealMemoryUsed Real memory used. DiskSpaceUsed Disk space used. HeapMemoryUsed Heap memory used. TableSpaceUsed Table space used. TableSpaceFree Table space free. TimeThreadPoolExhausted Time during which a thread pool was fully utilized (no threads were free) TimeJCAThreadPoolExhausted Time during which a Java Connection Architecture thread pool was fully utilized (no threads were free) TimeDatabaseThreadPoolExhausted DiskSpaceOverCommitAmount Amount of disk space committed beyond the disk's capacity. MemoryAvailableAfterGarbageCollection Memory available following completion of a garbage collection request. VmCpuReady Amount of CPU ready from a virtual machine's point of view CpuSpeed Speed of the CPU LoginRequestFailures Failed login requests AvgLoginRequestFailures Average login request failures SqlStatmentFailures SQL statements that failed GarbageCollectionRequests Garbage collection requests AvgRequestFailures Average request failures RequestFailures Request failures ResponseTime Time required for some system to respond to a request AvgJmsGetTime Average time required for a system to respond to a Java Messaging Service GET request NetworkIOErrors Network packets sent or received that did not complete successfully. 60 PerMinute Units for a quantity where a value of one represents 60 seconds of time. LockListUsed Lock usage SortOverflows A sort's performance was impacted because the data to be sorted is large enough for it to overflow from (relatively) fast to (relatively) slow storage. QueueFull A queue filled to its maximum capacity QueueDepth Size/lenght/depth of a queue RemoteInboundConnections Remote inbound connections LocalInboundConnections Local inbound connections HighDepthQueueCount MessageCount LogUsed Amount of log used, either absolute or relative to some maximum HostedDatabases Databases hosted, either absolute or relative to some maximum BufferPoolHits Buffer pool hits, e.g. hit ratio or count process A process running, for example, in a computer system. Typically refers to a resource with type crtv:ComputerSystem, but it may refer to other resource types. disk A disk attached, for example, to a computer system. Typically refers to a resource with type crtv:ComputerSystem, but it may refer to other resource types. availabilityStatus An indication of availability. monitoringAgent Software that monitors a resource’s availability, performance, capacity, or utilization. Typically refers to a resource with type foaf:Agent, but it may refer to other resource types. mobilityEnabled An indication about whether the resource can move about dynamically. tableReorganizationNeeded Indicates whether a database’s tables need to be reorganized. NotRunning Not running in its host environment Running Running in its host environment Unknown Unknown status

@prefix qudt: . @prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix ems: . @prefix rdfs: . @prefix pm: . @prefix rddl: . pm:VirtualMemoryUsed a rdfs:Class ; rdfs:comment "Virtual memory used." ; rdfs:isDefinedBy pm: ; rdfs:label "VirtualMemoryUsed" ; rdfs:seeAlso ; rdfs:subClassOf pm:VirtualizationMetrics , pm:MemoryMetrics , pm:ResourceUsageMetrics . pm:CpuMetrics a rdfs:Class ; rdfs:comment "Metric category for CPU-related metrics." ; rdfs:isDefinedBy pm: ; rdfs:label "CpuMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm:TimeJCAThreadPoolExhausted a rdfs:Class ; rdfs:comment "Time during which a Java Connection Architecture thread pool was fully utilized (no threads were free)" ; rdfs:isDefinedBy pm: ; rdfs:label "TimeJCAThreadPoolExhausted" ; rdfs:seeAlso ; rdfs:subClassOf pm:ThreadPoolMetrics , pm:ResourceExhaustionMetrics . pm:process a rdf:Property ; rdfs:comment "A process running, for example, in a computer system. Typically refers to a resource with type crtv:ComputerSystem, but it may refer to other resource types." ; rdfs:isDefinedBy pm: ; rdfs:label "process" ; rdfs:seeAlso . pm:NotRunning rdfs:comment "Not running in its host environment" ; rdfs:isDefinedBy pm: ; rdfs:label "NotRunning" ; rdfs:seeAlso . pm:ResourceUsageMetrics a rdfs:Class ; rdfs:comment "Metric category for metrics that show resource usage." ; rdfs:isDefinedBy pm: ; rdfs:label "ResourceUsageMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm:NetworkMetrics a rdfs:Class ; rdfs:comment "Metric category for network-related metrics." ; rdfs:isDefinedBy pm: ; rdfs:label "NetworkMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm:ResponseTime a rdfs:Class ; rdfs:comment "Time required for some system to respond to a request" ; rdfs:isDefinedBy pm: ; rdfs:label "ResponseTime" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResponseTimeMetrics , pm:RequestMetrics . pm:monitoringAgent a rdf:Property ; rdfs:comment "Software that monitors a resource’s availability, performance, capacity, or utilization. Typically refers to a resource with type foaf:Agent, but it may refer to other resource types." ; rdfs:isDefinedBy pm: ; rdfs:label "monitoringAgent" ; rdfs:seeAlso . pm:BufferPoolMetrics a rdfs:Class ; rdfs:comment "Metric category for buffer pool-related metrics." ; rdfs:isDefinedBy pm: ; rdfs:label "BufferPoolMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:MemoryMetrics . pm:TimeThreadPoolExhausted a rdfs:Class ; rdfs:comment "Time during which a thread pool was fully utilized (no threads were free)" ; rdfs:isDefinedBy pm: ; rdfs:label "TimeThreadPoolExhausted" ; rdfs:seeAlso ; rdfs:subClassOf pm:ThreadPoolMetrics , pm:ResourceExhaustionMetrics . pm:TableSpaceFree a rdfs:Class ; rdfs:comment "Table space free." ; rdfs:isDefinedBy pm: ; rdfs:label "TableSpaceFree" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceAvailabilityMetrics . pm:NetworkIOErrors a rdfs:Class ; rdfs:comment "Network packets sent or received that did not complete successfully." ; rdfs:isDefinedBy pm: ; rdfs:label "NetworkIOErrors" ; rdfs:seeAlso ; rdfs:subClassOf pm:FailureMetrics , pm:NetworkMetrics . pm:BufferPoolHits a rdfs:Class ; rdfs:comment "Buffer pool hits, e.g. hit ratio or count" ; rdfs:isDefinedBy pm: ; rdfs:label "BufferPoolHits" ; rdfs:seeAlso ; rdfs:subClassOf pm:BufferPoolMetrics , pm:ResourceUsageMetrics . pm:TimeDatabaseThreadPoolExhausted a rdfs:Class ; rdfs:isDefinedBy pm: ; rdfs:label "TimeDatabaseThreadPoolExhausted" ; rdfs:seeAlso , ; rdfs:subClassOf pm:ThreadPoolMetrics , pm:ResourceExhaustionMetrics . pm:RequestFailures a rdfs:Class ; rdfs:comment "Request failures" ; rdfs:isDefinedBy pm: ; rdfs:label "RequestFailures" ; rdfs:seeAlso ; rdfs:subClassOf pm:FailureMetrics . pm:DiskSpaceOverCommitAmount a rdfs:Class ; rdfs:comment "Amount of disk space committed beyond the disk's capacity." ; rdfs:isDefinedBy pm: ; rdfs:label "DiskSpaceOverCommitAmount" ; rdfs:seeAlso ; rdfs:subClassOf pm:DiskMetrics , pm:ResourceExhaustionMetrics . pm:LockListUsed a rdfs:Class ; rdfs:comment "Lock usage" ; rdfs:isDefinedBy pm: ; rdfs:label "LockListUsed" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceUsageMetrics . pm:LoginRequestFailures a rdfs:Class ; rdfs:comment "Failed login requests" ; rdfs:isDefinedBy pm: ; rdfs:label "LoginRequestFailures" ; rdfs:seeAlso ; rdfs:subClassOf pm:FailureMetrics . pm:mobilityEnabled a rdf:Property ; rdfs:comment "An indication about whether the resource can move about dynamically." ; rdfs:isDefinedBy pm: ; rdfs:label "mobilityEnabled" ; rdfs:seeAlso . pm:LocalInboundConnections a rdfs:Class ; rdfs:comment "Local inbound connections" ; rdfs:isDefinedBy pm: ; rdfs:label "LocalInboundConnections" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceUsageMetrics . pm:CpuUsed a rdfs:Class ; rdfs:comment "CPU used." ; rdfs:isDefinedBy pm: ; rdfs:label "CpuUsed" ; rdfs:seeAlso ; rdfs:subClassOf pm:CpuMetrics , pm:ResourceUsageMetrics . pm:PerMinute a , rdfs:Class ; rdfs:comment "Units for a quantity where a value of one represents 60 seconds of time." ; rdfs:isDefinedBy pm: ; rdfs:label "PerMinute" ; rdfs:seeAlso ; qudt:conversionMultiplier "60"^^ . pm:DiskMetrics a rdfs:Class ; rdfs:comment "Metric category for disk-related metrics." ; rdfs:isDefinedBy pm: ; rdfs:label "DiskMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm:MemoryMetrics a rdfs:Class ; rdfs:comment "Metric category for memory-related metrics." ; rdfs:isDefinedBy pm: ; rdfs:label "MemoryMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm:QueueDepth a rdfs:Class ; rdfs:comment "Size/lenght/depth of a queue" ; rdfs:isDefinedBy pm: ; rdfs:label "QueueDepth" ; rdfs:seeAlso ; rdfs:subClassOf pm:RequestMetrics . pm:FailureMetrics a rdfs:Class ; rdfs:comment "Metric category for requests that fail." ; rdfs:isDefinedBy pm: ; rdfs:label "FailureMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:RequestMetrics . pm:disk a rdf:Property ; rdfs:comment "A disk attached, for example, to a computer system. Typically refers to a resource with type crtv:ComputerSystem, but it may refer to other resource types." ; rdfs:isDefinedBy pm: ; rdfs:label "disk" ; rdfs:seeAlso . pm:LogUsed a rdfs:Class ; rdfs:comment "Amount of log used, either absolute or relative to some maximum" ; rdfs:isDefinedBy pm: ; rdfs:label "LogUsed" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceUsageMetrics . pm:ThreadPoolMetrics a rdfs:Class ; rdfs:comment "Metric category for thread pool-related metrics." ; rdfs:isDefinedBy pm: ; rdfs:label "ThreadPoolMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm:CpuSpeed a rdfs:Class ; rdfs:comment "Speed of the CPU" ; rdfs:isDefinedBy pm: ; rdfs:label "CpuSpeed" ; rdfs:seeAlso ; rdfs:subClassOf pm:CpuMetrics , pm:ResourceAvailabilityMetrics . pm:DiskSpaceUsed a rdfs:Class ; rdfs:comment "Disk space used." ; rdfs:isDefinedBy pm: ; rdfs:label "DiskSpaceUsed" ; rdfs:seeAlso ; rdfs:subClassOf pm:DiskMetrics , pm:ResourceUsageMetrics . pm:SqlStatmentFailures a rdfs:Class ; rdfs:comment "SQL statements that failed" ; rdfs:isDefinedBy pm: ; rdfs:label "SqlStatmentFailures" ; rdfs:seeAlso ; rdfs:subClassOf pm:FailureMetrics . pm:AvgRequestFailures a rdfs:Class ; rdfs:comment "Average request failures" ; rdfs:isDefinedBy pm: ; rdfs:label "AvgRequestFailures" ; rdfs:seeAlso ; rdfs:subClassOf pm:FailureMetrics . pm:AvgJmsGetTime a rdfs:Class ; rdfs:comment "Average time required for a system to respond to a Java Messaging Service GET request" ; rdfs:isDefinedBy pm: ; rdfs:label "AvgJmsGetTime" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResponseTimeMetrics , pm:RequestMetrics . pm:Running rdfs:comment "Running in its host environment" ; rdfs:isDefinedBy pm: ; rdfs:label "Running" ; rdfs:seeAlso . pm:GarbageCollectionRequests a rdfs:Class ; rdfs:comment "Garbage collection requests" ; rdfs:isDefinedBy pm: ; rdfs:label "GarbageCollectionRequests" ; rdfs:seeAlso ; rdfs:subClassOf pm:RequestMetrics . pm:RequestMetrics a rdfs:Class ; rdfs:comment "Metric category for requests on a resource, originating from an end user or a system component." ; rdfs:isDefinedBy pm: ; rdfs:label "RequestMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm: a owl:Ontology ; rdfs:label "Performance Monitoring" ; rdfs:seeAlso , ; dcterms:description "All vocabulary\n URIs defined in the OSLC Performance Monitoring namespace."^^rdf:XMLLiteral ; dcterms:source ; dcterms:title "The OSLC Performance Monitoring Vocabulary" . pm:Metric a rdfs:Class ; rdfs:comment "Metric category for metrics defined in the Performance Monitoring vocabulary." ; rdfs:isDefinedBy pm: ; rdfs:label "Metric" ; rdfs:seeAlso ; rdfs:subClassOf ems:Metric . pm:VmCpuReady a rdfs:Class ; rdfs:comment "Amount of CPU ready from a virtual machine's point of view" ; rdfs:isDefinedBy pm: ; rdfs:label "VmCpuReady" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceAvailabilityMetrics , pm:CpuMetrics , pm:VirtualizationMetrics . pm:ResourceExhaustionMetrics a rdfs:Class ; rdfs:comment "Metric category for metrics that show resource consumption in excess of capacity." ; rdfs:isDefinedBy pm: ; rdfs:label "ResourceExhaustionMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceUsageMetrics . pm:RemoteInboundConnections a rdfs:Class ; rdfs:comment "Remote inbound connections" ; rdfs:isDefinedBy pm: ; rdfs:label "RemoteInboundConnections" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceUsageMetrics . pm:QueueFull a rdfs:Class ; rdfs:comment "A queue filled to its maximum capacity" ; rdfs:isDefinedBy pm: ; rdfs:label "QueueFull" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceExhaustionMetrics . pm:MessageCount a rdfs:Class ; rdfs:comment "" ; rdfs:isDefinedBy pm: ; rdfs:label "MessageCount" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceUsageMetrics . pm:Unknown rdfs:comment "Unknown status" ; rdfs:isDefinedBy pm: ; rdfs:label "Unknown" ; rdfs:seeAlso . pm:TableSpaceUsed a rdfs:Class ; rdfs:comment "Table space used." ; rdfs:isDefinedBy pm: ; rdfs:label "TableSpaceUsed" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceUsageMetrics . pm:ResponseTimeMetrics a rdfs:Class ; rdfs:comment "Metric category for metrics that show time it takes for a response to be returned to a request." ; rdfs:isDefinedBy pm: ; rdfs:label "ResponseTimeMetrics" ; rdfs:seeAlso , ; rdfs:subClassOf pm:RequestMetrics . rddl:nature rdfs: . pm:VirtualizationMetrics a rdfs:Class ; rdfs:comment "Metric category for virtualization-related resource metrics." ; rdfs:isDefinedBy pm: ; rdfs:label "VirtualizationMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm:HighDepthQueueCount a rdfs:Class ; rdfs:comment "" ; rdfs:isDefinedBy pm: ; rdfs:label "HighDepthQueueCount" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceExhaustionMetrics . pm:PerformanceMonitoringRecord a rdfs:Class ; rdfs:comment "A resource representing performance monitoring information" ; rdfs:isDefinedBy pm: ; rdfs:label "PerformanceMonitoringRecord" ; rdfs:seeAlso . pm:ResourceAvailabilityMetrics a rdfs:Class ; rdfs:comment "Metric category for metrics that show resource availability." ; rdfs:isDefinedBy pm: ; rdfs:label "ResourceAvailabilityMetrics" ; rdfs:seeAlso ; rdfs:subClassOf pm:Metric . pm:HeapMemoryUsed a rdfs:Class ; rdfs:comment "Heap memory used." ; rdfs:isDefinedBy pm: ; rdfs:label "HeapMemoryUsed" ; rdfs:seeAlso ; rdfs:subClassOf pm:MemoryMetrics , pm:ResourceUsageMetrics . pm:HostedDatabases a rdfs:Class ; rdfs:comment "Databases hosted, either absolute or relative to some maximum" ; rdfs:isDefinedBy pm: ; rdfs:label "HostedDatabases" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceUsageMetrics . pm:AvgLoginRequestFailures a rdfs:Class ; rdfs:comment "Average login request failures" ; rdfs:isDefinedBy pm: ; rdfs:label "AvgLoginRequestFailures" ; rdfs:seeAlso ; rdfs:subClassOf pm:FailureMetrics . pm:RealMemoryUsed a rdfs:Class ; rdfs:comment "Real memory used." ; rdfs:isDefinedBy pm: ; rdfs:label "RealMemoryUsed" ; rdfs:seeAlso ; rdfs:subClassOf pm:MemoryMetrics , pm:ResourceUsageMetrics . pm:tableReorganizationNeeded a rdf:Property ; rdfs:comment "Indicates whether a database’s tables need to be reorganized." ; rdfs:isDefinedBy pm: ; rdfs:label "tableReorganizationNeeded" ; rdfs:seeAlso . pm:MemoryAvailableAfterGarbageCollection a rdfs:Class ; rdfs:comment "Memory available following completion of a garbage collection request." ; rdfs:isDefinedBy pm: ; rdfs:label "MemoryAvailableAfterGarbageCollection" ; rdfs:seeAlso ; rdfs:subClassOf pm:MemoryMetrics , pm:ResourceAvailabilityMetrics . pm:SortOverflows a rdfs:Class ; rdfs:comment "A sort's performance was impacted because the data to be sorted is large enough for it to overflow from (relatively) fast to (relatively) slow storage." ; rdfs:isDefinedBy pm: ; rdfs:label "SortOverflows" ; rdfs:seeAlso ; rdfs:subClassOf pm:ResourceExhaustionMetrics . pm:availabilityStatus a rdf:Property ; rdfs:comment "An indication of availability." ; rdfs:isDefinedBy pm: ; rdfs:label "availabilityStatus" ; rdfs:seeAlso .

{ "@graph" : [ { "@id" : "http://open-services.net/ns/qm#", "@type" : "owl:Ontology", "description" : "\n All vocabulary URIs defined in the OSLC Quality Management (QM) namespace.\n ", "title" : "The OSLC Quality Management(QM) Vocabulary", "label" : "Quality Management(QM)", "seeAlso" : [ "http://open-services.net/ns/qm/qm.rdf", "http://open-services.net/bin/view/Main/QmSpecificationV2", "http://open-services.net/bin/view/Main/QmHome" ] }, { "@id" : "http://open-services.net/ns/qm#TestCase", "@type" : "rdfs:Class", "comment" : "The QM Test Case resource", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "TestCase", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestCase" }, { "@id" : "http://open-services.net/ns/qm#TestExecutionRecord", "@type" : "rdfs:Class", "comment" : "The QM Test Execution Record resource", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "TestExecutionRecord", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestExecutionRecord" }, { "@id" : "http://open-services.net/ns/qm#TestPlan", "@type" : "rdfs:Class", "comment" : "The QM Test Plan resource", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "TestPlan", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestPlan" }, { "@id" : "http://open-services.net/ns/qm#TestResult", "@type" : "rdfs:Class", "comment" : "The QM Test Result resource", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "TestResult", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestResult" }, { "@id" : "http://open-services.net/ns/qm#TestScript", "@type" : "rdfs:Class", "comment" : "The QM Test Script resource", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "TestScript", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestScript" }, { "@id" : "http://open-services.net/ns/qm#affectedByChangeRequest", "@type" : "rdf:Property", "comment" : "Change request that affects the Test Result. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "affectedByChangeRequest", "range" : "http://open-services.net/ns/qm#TestResult", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestResult" }, { "@id" : "http://open-services.net/ns/qm#blockedByChangeRequest", "@type" : "rdf:Property", "comment" : "Change Request that prevents execution of the Test Execution Record. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "blockedByChangeRequest", "range" : "http://open-services.net/ns/qm#TestExecutionRecord", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestExecutionRecord" }, { "@id" : "http://open-services.net/ns/qm#executesTestScript", "@type" : "rdf:Property", "comment" : "Test Script executed to produce the Test Result. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "executesTestScript", "range" : "http://open-services.net/ns/qm#TestResult", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestResult" }, { "@id" : "http://open-services.net/ns/qm#executionInstructions", "@type" : "rdf:Property", "comment" : "Instructions for executing the test script. Note that the value of Occurs is undefined. The resource shape document provided by the QM service provider may be consulted for its value.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "executionInstructions", "range" : "http://open-services.net/ns/qm#TestScript", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestScript" }, { "@id" : "http://open-services.net/ns/qm#producedByTestExecutionRecord", "@type" : "rdf:Property", "comment" : "Test Execution Record that the Test Result was produced by. It is likely that the target resource will be an oslc_qm:TestExecutionRecord but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "producedByTestExecutionRecord", "range" : "http://open-services.net/ns/qm#TestResult", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestResult" }, { "@id" : "http://open-services.net/ns/qm#relatedChangeRequest", "@type" : "rdf:Property", "comment" : "A related change request. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. ", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "relatedChangeRequest", "range" : [ "http://open-services.net/ns/qm#TestCase", "http://open-services.net/ns/qm#TestScript", "http://open-services.net/ns/qm#TestPlan", "http://open-services.net/ns/qm#TestExecutionRecord", "http://open-services.net/ns/qm#TestResult" ], "seeAlso" : [ "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestScript", "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestCase", "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestResult", "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestExecutionRecord", "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestPlan" ] }, { "@id" : "http://open-services.net/ns/qm#reportsOnTestCase", "@type" : "rdf:Property", "comment" : "Test Case that the Test Result reports on. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "reportsOnTestCase", "range" : "http://open-services.net/ns/qm#TestResult", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestResult" }, { "@id" : "http://open-services.net/ns/qm#reportsOnTestPlan", "@type" : "rdf:Property", "comment" : [ "Test Plan that the Test Result reports on. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case.", "Test Plan that the Test Execution Record reports on. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case." ], "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "reportsOnTestPlan", "range" : [ "http://open-services.net/ns/qm#TestResult", "http://open-services.net/ns/qm#TestExecutionRecord" ], "seeAlso" : [ "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestResult", "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestExecutionRecord" ] }, { "@id" : "http://open-services.net/ns/qm#runsOnTestEnvironment", "@type" : "rdf:Property", "comment" : "Indicates the environment details of the test case for this execution record.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "runsOnTestEnvironment", "range" : "http://open-services.net/ns/qm#TestExecutionRecord", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestExecutionRecord" }, { "@id" : "http://open-services.net/ns/qm#runsTestCase", "@type" : "rdf:Property", "comment" : "Test Case run by the Test Execution Record. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "runsTestCase", "range" : "http://open-services.net/ns/qm#TestExecutionRecord", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestExecutionRecord" }, { "@id" : "http://open-services.net/ns/qm#testsChangeRequest", "@type" : "rdf:Property", "comment" : "Change Request tested by the Test Case. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "testsChangeRequest", "range" : "http://open-services.net/ns/qm#TestCase", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestCase" }, { "@id" : "http://open-services.net/ns/qm#usesTestCase", "@type" : "rdf:Property", "comment" : "Test Case used by the Test Plan. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "usesTestCase", "range" : "http://open-services.net/ns/qm#TestPlan", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestPlan" }, { "@id" : "http://open-services.net/ns/qm#usesTestScript", "@type" : "rdf:Property", "comment" : "Test Script used by the Test Case. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "usesTestScript", "range" : "http://open-services.net/ns/qm#TestCase", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestCase" }, { "@id" : "http://open-services.net/ns/qm#validatesRequirement", "@type" : "rdf:Property", "comment" : "Requirement that is validated by the Test Case. It is likely that the target resource will be an oslc_rm:Requirement but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "validatesRequirement", "range" : [ "http://open-services.net/ns/qm#TestScript", "http://open-services.net/ns/qm#TestCase" ], "seeAlso" : [ "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestScript", "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestCase" ] }, { "@id" : "http://open-services.net/ns/qm#validatesRequirementCollection", "@type" : "rdf:Property", "comment" : "Requirement Collection that is validated by the Test Plan. It is likely that the target resource will be an oslc_rm:RequirementCollection but that is not necessarily the case.", "isDefinedBy" : "http://open-services.net/ns/qm#", "label" : "validatesRequirementCollection", "range" : "http://open-services.net/ns/qm#TestPlan", "seeAlso" : "http://open-services.net/bin/view/Main/QmSpecificationV2#Resource_TestPlan" }, { "@id" : "http://open-services.net/ns/qm/qm.rdf", "nature" : "http://www.w3.org/2000/01/rdf-schema#" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "range" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#range", "@type" : "@id" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "nature" : { "@id" : "http://www.rddl.org/nature", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description", "@type" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "owl" : "http://www.w3.org/2002/07/owl#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "rddl" : "http://www.rddl.org/" } }

. . "Change request that affects the Test Result. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case." . "affectedByChangeRequest" . . . . . "Test Case run by the Test Execution Record. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case." . "runsTestCase" . . . . . "Test Plan that the Test Result reports on. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case." . . . "Test Plan that the Test Execution Record reports on. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case." . "reportsOnTestPlan" . . . . "A related change request. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. " . . . . . . "relatedChangeRequest" . . . . . . . . . "Change Request tested by the Test Case. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case." . "testsChangeRequest" . . . . . "Test Script executed to produce the Test Result. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case." . "executesTestScript" . . . . "The QM Test Plan resource" . "TestPlan" . . . . . "Test Case used by the Test Plan. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case." . "usesTestCase" . . . . . "The QM Test Execution Record resource" . "TestExecutionRecord" . . . . . "Requirement Collection that is validated by the Test Plan. It is likely that the target resource will be an oslc_rm:RequirementCollection but that is not necessarily the case." . "validatesRequirementCollection" . . . . . . "Quality Management(QM)" . "\n All vocabulary URIs defined in the OSLC Quality Management (QM) namespace.\n "^^ . "The OSLC Quality Management(QM) Vocabulary" . . . "The QM Test Script resource" . "TestScript" . . . . . "Change Request that prevents execution of the Test Execution Record. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case." . "blockedByChangeRequest" . . . . . "Test Script used by the Test Case. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case." . "usesTestScript" . . . . . . . "Requirement that is validated by the Test Case. It is likely that the target resource will be an oslc_rm:Requirement but that is not necessarily the case." . "validatesRequirement" . . . . . "Indicates the environment details of the test case for this execution record." . "runsOnTestEnvironment" . . . . . "Test Execution Record that the Test Result was produced by. It is likely that the target resource will be an oslc_qm:TestExecutionRecord but that is not necessarily the case." . "producedByTestExecutionRecord" . . . . . "Test Case that the Test Result reports on. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case." . "reportsOnTestCase" . . . . "The QM Test Result resource" . "TestResult" . . . . "The QM Test Case resource" . "TestCase" . . . . . "Instructions for executing the test script. Note that the value of Occurs is undefined. The resource shape document provided by the QM service provider may be consulted for its value." . "executionInstructions" . . .

The OSLC Quality Management(QM) Vocabulary All vocabulary URIs defined in the OSLC Quality Management (QM) namespace. Quality Management(QM) TestPlan The QM Test Plan resource TestCase The QM Test Case resource TestScript The QM Test Script resource TestExecutionRecord The QM Test Execution Record resource TestResult The QM Test Result resource relatedChangeRequest A related change request. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. usesTestCase Test Case used by the Test Plan. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case. validatesRequirementCollection Requirement Collection that is validated by the Test Plan. It is likely that the target resource will be an oslc_rm:RequirementCollection but that is not necessarily the case. testsChangeRequest Change Request tested by the Test Case. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. usesTestScript Test Script used by the Test Case. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case. validatesRequirement Requirement that is validated by the Test Case. It is likely that the target resource will be an oslc_rm:Requirement but that is not necessarily the case. executionInstructions Instructions for executing the test script. Note that the value of Occurs is undefined. The resource shape document provided by the QM service provider may be consulted for its value. blockedByChangeRequest Change Request that prevents execution of the Test Execution Record. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. runsOnTestEnvironment Indicates the environment details of the test case for this execution record. reportsOnTestPlan Test Plan that the Test Execution Record reports on. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case. runsTestCase Test Case run by the Test Execution Record. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case. affectedByChangeRequest Change request that affects the Test Result. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. executesTestScript Test Script executed to produce the Test Result. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case. producedByTestExecutionRecord Test Execution Record that the Test Result was produced by. It is likely that the target resource will be an oslc_qm:TestExecutionRecord but that is not necessarily the case. reportsOnTestCase Test Case that the Test Result reports on. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case. reportsOnTestPlan Test Plan that the Test Result reports on. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case.

@prefix owl: . @prefix rdf: . @prefix dcterms: . @prefix rdfs: . @prefix rddl: . a rdf:Property ; rdfs:comment "Change request that affects the Test Result. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "affectedByChangeRequest" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Test Case run by the Test Execution Record. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "runsTestCase" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Test Plan that the Test Result reports on. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case." , "Test Plan that the Test Execution Record reports on. It is likely that the target resource will be an oslc_qm:TestPlan but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "reportsOnTestPlan" ; rdfs:range , ; rdfs:seeAlso , . a rdf:Property ; rdfs:comment "A related change request. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case. " ; rdfs:isDefinedBy ; rdfs:label "relatedChangeRequest" ; rdfs:range , , , , ; rdfs:seeAlso , , , , . a rdf:Property ; rdfs:comment "Change Request tested by the Test Case. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "testsChangeRequest" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Test Script executed to produce the Test Result. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "executesTestScript" ; rdfs:range ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The QM Test Plan resource" ; rdfs:isDefinedBy ; rdfs:label "TestPlan" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Test Case used by the Test Plan. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "usesTestCase" ; rdfs:range ; rdfs:seeAlso . rddl:nature rdfs: . a rdfs:Class ; rdfs:comment "The QM Test Execution Record resource" ; rdfs:isDefinedBy ; rdfs:label "TestExecutionRecord" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Requirement Collection that is validated by the Test Plan. It is likely that the target resource will be an oslc_rm:RequirementCollection but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "validatesRequirementCollection" ; rdfs:range ; rdfs:seeAlso . a owl:Ontology ; rdfs:label "Quality Management(QM)" ; rdfs:seeAlso , , ; dcterms:description "\n All vocabulary URIs defined in the OSLC Quality Management (QM) namespace.\n "^^rdf:XMLLiteral ; dcterms:title "The OSLC Quality Management(QM) Vocabulary" . a rdfs:Class ; rdfs:comment "The QM Test Script resource" ; rdfs:isDefinedBy ; rdfs:label "TestScript" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Change Request that prevents execution of the Test Execution Record. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "blockedByChangeRequest" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Test Script used by the Test Case. It is likely that the target resource will be an oslc_qm:TestScript but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "usesTestScript" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Requirement that is validated by the Test Case. It is likely that the target resource will be an oslc_rm:Requirement but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "validatesRequirement" ; rdfs:range , ; rdfs:seeAlso , . a rdf:Property ; rdfs:comment "Indicates the environment details of the test case for this execution record." ; rdfs:isDefinedBy ; rdfs:label "runsOnTestEnvironment" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Test Execution Record that the Test Result was produced by. It is likely that the target resource will be an oslc_qm:TestExecutionRecord but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "producedByTestExecutionRecord" ; rdfs:range ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Test Case that the Test Result reports on. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case." ; rdfs:isDefinedBy ; rdfs:label "reportsOnTestCase" ; rdfs:range ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The QM Test Result resource" ; rdfs:isDefinedBy ; rdfs:label "TestResult" ; rdfs:seeAlso . a rdfs:Class ; rdfs:comment "The QM Test Case resource" ; rdfs:isDefinedBy ; rdfs:label "TestCase" ; rdfs:seeAlso . a rdf:Property ; rdfs:comment "Instructions for executing the test script. Note that the value of Occurs is undefined. The resource shape document provided by the QM service provider may be consulted for its value." ; rdfs:isDefinedBy ; rdfs:label "executionInstructions" ; rdfs:range ; rdfs:seeAlso .

Canonical sources AM: XML Asset: XML Automation: XML LDBP: XML CM: XML Config: Turtle Core: XML EMS: XML Perfmon: XML QM: XML RM: XML Converting RDF files Use Jena command line tools to produce the files in other formats: riot --output turtle core.rdf core.ttl

{ "@graph" : [ { "@id" : "http://open-services.net/ns/rm#", "description" : { "@language" : "en-gb", "@value" : "This RDFS Schema defines the Open Services for Lifecycle\n Collaboration Requirements Management and Definition vocabulary, also known\n as OSLC RM. This vocabulary is part of the OSLC RM 2.0 specification, which is part\n of the OSLC group of specifications. " }, "modified" : { "@language" : "en-gb", "@value" : "2010-10-10" }, "publisher" : { "@language" : "en-gb", "@value" : "Open Services for Lifecycle Collaboration\n Community" }, "title" : { "@language" : "en-gb", "@value" : "OSLC Namespace for terms in the\n http://open-services.net/ns/rm# namespace" }, "comment" : { "@language" : "en-gb", "@value" : "To comment on this schema, please contact\n rm@open-services.net." }, "seeAlso" : [ "http://open-services.net", "http://open-services.net/bin/view/Main/RmHome", "http://open-services.net/bin/view/Main/RmSpecificationV2" ] }, { "@id" : "http://open-services.net/ns/rm#Requirement", "@type" : "rdfs:Class", "hasBasicShape" : "http://open-services-net/shapes/rm#requirementShape", "description" : { "@language" : "en-gb", "@value" : "Statement of\n need." }, "issued" : { "@language" : "en-gb", "@value" : "2010-10-10" }, "modified" : { "@language" : "en-gb", "@value" : "2010-10-10" }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "Requirement" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" }, { "@id" : "http://open-services.net/ns/rm#RequirementCollection", "@type" : "rdfs:Class", "hasBasicShape" : "http://open-services-net/shapes/rm#requirementCollectionShape", "description" : { "@language" : "en-gb", "@value" : "Collection of requirements. A\n collection uses zero or more requirements." }, "issued" : { "@language" : "en-gb", "@value" : "2010-10-10" }, "modified" : { "@language" : "en-gb", "@value" : "2010-10-10" }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "RequirementCollection" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" }, { "@id" : "http://open-services.net/ns/rm#affectedBy", "@type" : "rdf:Property", "description" : { "@language" : "en-gb", "@value" : "Expresses an affects relationship\n between entities. For example, a defect may be said to affect a\n requirement." }, "issued" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "modified" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "comment" : { "@language" : "en-gb", "@value" : "An entity which in some way affects the object\n entity." }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "affectedBy" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" }, { "@id" : "http://open-services.net/ns/rm#elaboratedBy", "@type" : "rdf:Property", "description" : { "@language" : "en-gb", "@value" : "Expresses an elaboration relationship\n between entities. For example, a model element can elaborate a\n requirement." }, "issued" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "modified" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "comment" : { "@language" : "en-gb", "@value" : "An entity which elaborates." }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "elaboratedBy" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" }, { "@id" : "http://open-services.net/ns/rm#implementedBy", "@type" : "rdf:Property", "description" : { "@language" : "en-gb", "@value" : "Expresses an implementation\n relationship between entities." }, "issued" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "modified" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "comment" : { "@language" : "en-gb", "@value" : "An entity which is a necessary or desirable aspect\n of an implementation." }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "implementedBy" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" }, { "@id" : "http://open-services.net/ns/rm#specifiedBy", "@type" : "rdf:Property", "description" : { "@language" : "en-gb", "@value" : "Expresses a specification relationship\n between entities. For example, a model element can specifiy a\n requirement." }, "issued" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "modified" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "comment" : { "@language" : "en-gb", "@value" : "An entity which further clarifies or\n specifies." }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "specifiedBy" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" }, { "@id" : "http://open-services.net/ns/rm#trackedBy", "@type" : "rdf:Property", "description" : { "@language" : "en-gb", "@value" : "Expresses a tracking relationship\n between entities. For example, a change request may be said to track a\n requirement, in that it governs the changes to a requirement according to some\n process machinery." }, "issued" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "modified" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "comment" : { "@language" : "en-gb", "@value" : "An entity which in some way tracks or governs the\n evolution of an entity." }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "trackedBy" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" }, { "@id" : "http://open-services.net/ns/rm#uses", "@type" : "rdf:Property", "description" : { "@language" : "en-gb", "@value" : "Expresses a use relationship between\n entities. For example, a requirement collection may use a\n requirement." }, "issued" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "modified" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "comment" : { "@language" : "en-gb", "@value" : "An entity which is used by another\n resource." }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "uses" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" }, { "@id" : "http://open-services.net/ns/rm#validatedBy", "@type" : "rdf:Property", "description" : { "@language" : "en-gb", "@value" : "Expresses a validation relationship\n between entities. For example, a test plan may be said to validated a requirement\n collection." }, "issued" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "modified" : { "@language" : "en-gb", "@value" : "2008-01-14" }, "comment" : { "@language" : "en-gb", "@value" : "An entity which in some way\n validates." }, "isDefinedBy" : "http://open-services.net/ns/rm#", "label" : { "@language" : "en-gb", "@value" : "validatedBy" }, "seeAlso" : "http://open-services.net/bin/view/Main/RmSpecificationV2#RequirementResource" } ], "@context" : { "seeAlso" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#seeAlso", "@type" : "@id" }, "modified" : { "@id" : "http://purl.org/dc/terms/modified" }, "issued" : { "@id" : "http://purl.org/dc/terms/issued" }, "isDefinedBy" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", "@type" : "@id" }, "description" : { "@id" : "http://purl.org/dc/terms/description" }, "comment" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#comment" }, "label" : { "@id" : "http://www.w3.org/2000/01/rdf-schema#label" }, "hasBasicShape" : { "@id" : "http://open-services.net/ns/core#hasBasicShape", "@type" : "@id" }, "publisher" : { "@id" : "http://purl.org/dc/terms/publisher" }, "title" : { "@id" : "http://purl.org/dc/terms/title" }, "rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "dcterms" : "http://purl.org/dc/terms/", "rdfs" : "http://www.w3.org/2000/01/rdf-schema#", "oslc" : "http://open-services.net/ns/core#" } }

. "2008-01-14"@en-GB . . "2008-01-14"@en-GB . . "Expresses an implementation\n relationship between entities."@en-GB . "An entity which is a necessary or desirable aspect\n of an implementation."@en-GB . "implementedBy"@en-GB . . "2008-01-14"@en-GB . "2008-01-14"@en-GB . . "Expresses a tracking relationship\n between entities. For example, a change request may be said to track a\n requirement, in that it governs the changes to a requirement according to some\n process machinery."@en-GB . "An entity which in some way tracks or governs the\n evolution of an entity."@en-GB . "trackedBy"@en-GB . . . . "2010-10-10"@en-GB . "2010-10-10"@en-GB . . "Statement of\n need."@en-GB . "Requirement"@en-GB . . . "2008-01-14"@en-GB . "2008-01-14"@en-GB . . "Expresses a use relationship between\n entities. For example, a requirement collection may use a\n requirement."@en-GB . "An entity which is used by another\n resource."@en-GB . "uses"@en-GB . . . . . "2010-10-10"@en-GB . "Open Services for Lifecycle Collaboration\n Community"@en-GB . "To comment on this schema, please contact\n rm@open-services.net."@en-GB . "This RDFS Schema defines the Open Services for Lifecycle\n Collaboration Requirements Management and Definition vocabulary, also known\n as OSLC RM. This vocabulary is part of the OSLC RM 2.0 specification, which is part\n of the OSLC group of specifications. "@en-GB . "OSLC Namespace for terms in the\n http://open-services.net/ns/rm# namespace"@en-GB . . "2008-01-14"@en-GB . "2008-01-14"@en-GB . . "Expresses an elaboration relationship\n between entities. For example, a model element can elaborate a\n requirement."@en-GB . "An entity which elaborates."@en-GB . "elaboratedBy"@en-GB . . . . "2010-10-10"@en-GB . "2010-10-10"@en-GB . . "Collection of requirements. A\n collection uses zero or more requirements."@en-GB . "RequirementCollection"@en-GB . . . "2008-01-14"@en-GB . "2008-01-14"@en-GB . . "Expresses a specification relationship\n between entities. For example, a model element can specifiy a\n requirement."@en-GB . "An entity which further clarifies or\n specifies."@en-GB . "specifiedBy"@en-GB . . . "2008-01-14"@en-GB . "2008-01-14"@en-GB . . "Expresses an affects relationship\n between entities. For example, a defect may be said to affect a\n requirement."@en-GB . "An entity which in some way affects the object\n entity."@en-GB . "affectedBy"@en-GB . . . "2008-01-14"@en-GB . "2008-01-14"@en-GB . . "Expresses a validation relationship\n between entities. For example, a test plan may be said to validated a requirement\n collection."@en-GB . "An entity which in some way\n validates."@en-GB . "validatedBy"@en-GB . .

OSLC Namespace for terms in the http://open-services.net/ns/rm# namespace This RDFS Schema defines the Open Services for Lifecycle Collaboration Requirements Management and Definition vocabulary, also known as OSLC RM. This vocabulary is part of the OSLC RM 2.0 specification, which is part of the OSLC group of specifications. To comment on this schema, please contact rm@open-services.net. Open Services for Lifecycle Collaboration Community 2010-10-10 Requirement Statement of need. 2010-10-10 2010-10-10 RequirementCollection Collection of requirements. A collection uses zero or more requirements. 2010-10-10 2010-10-10 implementedBy An entity which is a necessary or desirable aspect of an implementation. Expresses an implementation relationship between entities. 2008-01-14 2008-01-14 elaboratedBy An entity which elaborates. Expresses an elaboration relationship between entities. For example, a model element can elaborate a requirement. 2008-01-14 2008-01-14 specifiedBy An entity which further clarifies or specifies. Expresses a specification relationship between entities. For example, a model element can specifiy a requirement. 2008-01-14 2008-01-14 affectedBy An entity which in some way affects the object entity. Expresses an affects relationship between entities. For example, a defect may be said to affect a requirement. 2008-01-14 2008-01-14 trackedBy An entity which in some way tracks or governs the evolution of an entity. Expresses a tracking relationship between entities. For example, a change request may be said to track a requirement, in that it governs the changes to a requirement according to some process machinery. 2008-01-14 2008-01-14 validatedBy An entity which in some way validates. Expresses a validation relationship between entities. For example, a test plan may be said to validated a requirement collection. 2008-01-14 2008-01-14 uses An entity which is used by another resource. Expresses a use relationship between entities. For example, a requirement collection may use a requirement. 2008-01-14 2008-01-14

@prefix rdf: . @prefix dcterms: . @prefix rdfs: . @prefix oslc: . a rdf:Property ; rdfs:comment "An entity which is a necessary or desirable aspect\n of an implementation."@en-GB ; rdfs:isDefinedBy ; rdfs:label "implementedBy"@en-GB ; rdfs:seeAlso ; dcterms:description "Expresses an implementation\n relationship between entities."@en-GB ; dcterms:issued "2008-01-14"@en-GB ; dcterms:modified "2008-01-14"@en-GB . a rdf:Property ; rdfs:comment "An entity which in some way tracks or governs the\n evolution of an entity."@en-GB ; rdfs:isDefinedBy ; rdfs:label "trackedBy"@en-GB ; rdfs:seeAlso ; dcterms:description "Expresses a tracking relationship\n between entities. For example, a change request may be said to track a\n requirement, in that it governs the changes to a requirement according to some\n process machinery."@en-GB ; dcterms:issued "2008-01-14"@en-GB ; dcterms:modified "2008-01-14"@en-GB . a rdfs:Class ; rdfs:isDefinedBy ; rdfs:label "Requirement"@en-GB ; rdfs:seeAlso ; oslc:hasBasicShape ; dcterms:description "Statement of\n need."@en-GB ; dcterms:issued "2010-10-10"@en-GB ; dcterms:modified "2010-10-10"@en-GB . a rdf:Property ; rdfs:comment "An entity which is used by another\n resource."@en-GB ; rdfs:isDefinedBy ; rdfs:label "uses"@en-GB ; rdfs:seeAlso ; dcterms:description "Expresses a use relationship between\n entities. For example, a requirement collection may use a\n requirement."@en-GB ; dcterms:issued "2008-01-14"@en-GB ; dcterms:modified "2008-01-14"@en-GB . rdfs:comment "To comment on this schema, please contact\n rm@open-services.net."@en-GB ; rdfs:seeAlso , , ; dcterms:description "This RDFS Schema defines the Open Services for Lifecycle\n Collaboration Requirements Management and Definition vocabulary, also known\n as OSLC RM. This vocabulary is part of the OSLC RM 2.0 specification, which is part\n of the OSLC group of specifications. "@en-GB ; dcterms:modified "2010-10-10"@en-GB ; dcterms:publisher "Open Services for Lifecycle Collaboration\n Community"@en-GB ; dcterms:title "OSLC Namespace for terms in the\n http://open-services.net/ns/rm# namespace"@en-GB . a rdf:Property ; rdfs:comment "An entity which elaborates."@en-GB ; rdfs:isDefinedBy ; rdfs:label "elaboratedBy"@en-GB ; rdfs:seeAlso ; dcterms:description "Expresses an elaboration relationship\n between entities. For example, a model element can elaborate a\n requirement."@en-GB ; dcterms:issued "2008-01-14"@en-GB ; dcterms:modified "2008-01-14"@en-GB . a rdfs:Class ; rdfs:isDefinedBy ; rdfs:label "RequirementCollection"@en-GB ; rdfs:seeAlso ; oslc:hasBasicShape ; dcterms:description "Collection of requirements. A\n collection uses zero or more requirements."@en-GB ; dcterms:issued "2010-10-10"@en-GB ; dcterms:modified "2010-10-10"@en-GB . a rdf:Property ; rdfs:comment "An entity which further clarifies or\n specifies."@en-GB ; rdfs:isDefinedBy ; rdfs:label "specifiedBy"@en-GB ; rdfs:seeAlso ; dcterms:description "Expresses a specification relationship\n between entities. For example, a model element can specifiy a\n requirement."@en-GB ; dcterms:issued "2008-01-14"@en-GB ; dcterms:modified "2008-01-14"@en-GB . a rdf:Property ; rdfs:comment "An entity which in some way affects the object\n entity."@en-GB ; rdfs:isDefinedBy ; rdfs:label "affectedBy"@en-GB ; rdfs:seeAlso ; dcterms:description "Expresses an affects relationship\n between entities. For example, a defect may be said to affect a\n requirement."@en-GB ; dcterms:issued "2008-01-14"@en-GB ; dcterms:modified "2008-01-14"@en-GB . a rdf:Property ; rdfs:comment "An entity which in some way\n validates."@en-GB ; rdfs:isDefinedBy ; rdfs:label "validatedBy"@en-GB ; rdfs:seeAlso ; dcterms:description "Expresses a validation relationship\n between entities. For example, a test plan may be said to validated a requirement\n collection."@en-GB ; dcterms:issued "2008-01-14"@en-GB ; dcterms:modified "2008-01-14"@en-GB .

Resources

Why Integration requires a combination of linking and syncing

In this article, Tasktop explores the strengths of Open Services for Lifecycle Collaboration (OSLC) and some of the areas of improvement. The conclusion is that flexibility and value are what drive integration decisions. Read

Debunking the OSLC Link-Only Myth

Most large organizations require dozens and sometimes hundreds of specialized software tools to manage the lifecycle of the physical products or software applications they create. It isn't hard to imagine the monumental waste these organizations incur in attempting to manually coordinate the efforts of the teams that use these many disparate tools to create a single product. Open Services for Lifecycle Collaboration (OSLC) is an open community for creating specifications for integrating lifecycle activities across tools to address this problem. Now imagine how much more happy and productive an organization would be if all those tools could integrate via standard interfaces. In broad strokes, this is the goal of the OSLC community. Read

OSLC Developer Guide

Eclipse Lyo

The Eclipse Lyo project provides an SDK to help Java developers adopt OSLC specifications and build OSLC-compliant tools.

OSLC Primer

It has become commonplace that specifications are precise in their details but difficult to read and understand unless you already know the basic concepts. A good solution to this problem is to write a companion document called a primer, designed to be read first, whose goal is to explain the concepts while leaving precise details to the specification. This document is the primer for the OSLC Core Specification Version 2.0. It is also common that specifications lack information on how to apply the concepts of the specification, especially best practices. This document also attempts to be a usage guide for the OSLC Core Specification Version 2.0. Usage guidance is clearly marked with the Guidance keyword. Introduction Intended Audience This document is intended for technical leaders who want to understand the concepts and goals of OSLC and its relationship to other standards for evaluation, as well as potential OSLC implementers who want a general overview of the OSLC concepts and an understanding of the thinking and use-cases that led to their definition. We assume familiarity with basic web technologies such as HTTP, RDF and Linked Data. If you’re not familiar with these topics, you might find the following helpful: http://www.w3.org/2007/02/turtle/primer/ http://www.w3.org/TR/rdf-primer/ http://linkeddata.org/guides-and-tutorials Conventions The namespace for classes and predicates defined in the OSLC Core spec is http://open-services.net//ns/core#, abbreviated to oslc: in this document. We also reference concepts in the RDF namespace, http://www.w3.org/1999/02/22-rdf-syntax-ns#, abbreviated to rdf:, and the RDF Schema namespace, http://www.w3.org/2000/01/rdf-schema#, abbreviated to rdfs:. Most of the data samples in this document are written in Turtle notation, for its superior readability. If you prefer your samples in RDF/XML, copy the Turtle text into the validator at this URL: http://www.rdfabout.com/demo/validator/ , set the input type to “Notation 3 (or N-Triples/Turtle)” and click “validate!”. The validator will produce equivalent RDF/XML. What is OSLC? Open Services for Lifecycle Collaboration (OSLC) is an open community creating specifications for integrating tools. These specifications allow conforming independent software and product lifecycle tools to integrate their data and workflows in support of end-to-end lifecycle processes. Examples of lifecycle tools in software development include defect tracking tools, requirements management tools and test management tools. There are many more examples in software and product development and more still in “IT operations” (sometimes called service management) where deployed applications are managed. The OSLC community is organized into workgroups that address integration scenarios for individual topics such a change management, test management, requirements management and configuration management. These topics that have OSLC workgroups and specifications are called “domains” in OSLC. Each workgroup explores integration scenarios for a given lifecycle topic and specifies a common vocabulary for the lifecycle artifacts needed to support the scenarios. To ensure coherence and integration across these domains, each workgroup builds on the concepts and rules defined in the OSLC Core specification, which is produced by the Core workgroup. The OSLC Core specifies the primary integration techniques for integrating lifecycle tools. This consists mostly of standard rules and patterns for using HTTP and RDF that all the domain workgroups must adopt in their specifications. The Core Specification is not intended to be used by itself. Since there is no such thing as a generic lifecycle tool – every tool is specialized to one or more domains such as requirements, defect tracking, testing and so on – the Core Specification in conjunction with one or more of the OSLC domain specifications describe the OSLC protocols offered by a domain tool. The goal of OSLC is to create specifications for interactions between tools. OSLC is not trying to standardize the behavior or capability of any tool or class of tool, like a test tool or a requirements management tool. OSLC specifies a minimum amount of protocol and a small number of resource types to allow two such tools to work together relatively seamlessly. Even within a particular resource types specified by an OSLC workgroup, the goal is to define only properties that are valuable for integration, not all the properties that might be present in a particular tool’s resources. OSLC also tries to accommodate a wide variety of implementation technologies, and be equally relevant to both existing tools and to newly-built ones. See the OSLC Core specification. OSLC Technical Foundation OSLC is based on the W3C Linked Data. Here is a reminder of the 4 rules of linked data, authored by Tim Berners-Lee and documented on the W3C web site: http://www.w3.org/DesignIssues/LinkedData.html. Use URIs as names for things Use HTTP URIs so that people can look up those names When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL) Include links to other URIs. so that they can discover more things. (sic) In OSLC, each artifact in the lifecycle – for example, a requirement, defect, test case, source file, or development plan and so on – is an HTTP resource that is manipulated using the standard methods of the HTTP specification (GET, PUT, POST, DELETE). Following the third rule of linked data, each resource has an RDF representation – OSLC mandates RDF/XML, which is the most widely adopted RDF notation - but can have representations in other formats, like JSON or HTML. The OSLC Core specification defines a number of simple usage patterns of HTTP and RDF and a small number of resource types that help tools integrate and make the lifecycle work. The OSLC domain workgroups specify additional resource types specific to their lifecycle domain, but do not add new protocol. Primary OSLC integration techniques OSLC offers two primary techniques for integrating tools – “Linking data via HTTP” and “Linking Data via HTML User Interface”. Both of these techniques build on the HTTP and RDF foundation of OSLC. Linking data via HTTP. OSLC specifies a common tool protocol for creating, retrieving, updating and deleting (CRUD) lifecycle data based on internet standards like HTTP and RDF using the Linked Data model. This protocol can be used by any tool or other programmatic client to talk to any other tool that implements the specifications. Linking is achieved by embedding the HTTP URL of one resource in the representation of another. Linking Data via HTML User Interface. OSLC specifies a protocol that allows a tool or other client to cause a fragment of the web user interface of another tool to be displayed, allowing a human user to link to a new or existing resource in the other tool or see a preview of information about a resource in another tool. This enables a tool or other client to exploit existing user interface and business logic in other tools when integrating information and process steps. In some circumstances this is more efficient and offers more user function than implementing a new user interface and then integrating via an HTTP CRUD protocol. Both of these techniques are described in this primer. ServiceProvider Almost all existing lifecycle tools - whether they manage defects, test cases, requirements or whatever - have organizing concepts that partition the overall space of artifacts in the tool into smaller containers. Examples of common partitioning concepts offered by tools include “projects”, “modules”, “user databases” and so on. Each artifact created in the tool is created within one of these container-like entities, and users can list the existing artifacts within one. These container-like concepts are very important to the usage of tools – which container you put artifacts into and find artifacts in is essential to the way you work and may reflect which project you are working on, or which product the artifacts pertain to. There is no agreement across tools of the lifecycle, even within a particular domain, on what these partitioning concepts should be called, but there is almost universal agreement that they exist and are fundamentally important. These concepts are also fundamentally important in the integration scenarios supported by OSLC. OSLC defines the concept of ServiceProvider to allow products to expose these containers or partitions for integration scenarios. ServiceProviders answer two basic questions, which are: To which URLs should I POST to create new resources? Where can I GET a list of existing resources? Tip! A common misconception of people who have read the OSLC specification is that a ServiceProvider is intended to represent a tool or tool instance. A ServiceProvider is intended to represent a “container” of resources that is hosted by a tool, not the tool itself. A single instance of a tool will typically host multiple ServiceProviders, for example one for each “project” or “product”. Tip! OSLC references another standard – OAuth – for security. OAuth also has a concept called ServiceProvider, although OAuth appears to moving away from this term in favor of “Server”. The OAuth concept of ServiceProvider corresponds to the concept of a server, not a “resource container”. Multiple OSLC ServiceProviders would be expected to be hosted by the same OAuth ServiceProvider. OSLC has a different concept – ServiceProviderCatalog (explained later) - that is more closely analogous to OAuth’s ServiceProvider concept. Be careful not to confuse the OAuth concept of ServiceProvider and the OSLC concept of ServiceProvider. ServiceProvider is the central organizing concept of OSLC, enabling tools to expose resources and allowing consumers to navigate to all of the resources, and create new ones. Here are some characteristics of ServiceProviders: All OSLC resources live in some ServiceProvider. There is an optional property of each OSLC resource (oslc:serviceProvider) that says which ServiceProvider it is “in”. Clients can retrieve the list of existing resources in a ServiceProvider The only way that is defined in OSLC to create any new OSLC resources is to create them in a ServiceProvider (either directly through an HTTP POST, or via a dialog). A ServiceProvider is itself an OSLC resource with an HTTP URL. Tools often have “softer” or more dynamic partitions of artifacts based on data-values like “category” or “release” or “component” that can be further used to partition the space of artifacts in a container. When adopting OSLC for a new or existing tool, deciding which container-like concept in the tool to map to an OSLC ServiceProvider is a bit of an art – you need to think about what partitions should be viewed as fundamental from the point of view of an external client, and which partitions are more dynamic and ephemeral, changing as property values of resources change. The fundamental ones are the ones that should be represented as OSLC ServiceProviders. What does a ServiceProvider resource actually look like? If you do an HTTP GET on a ServiceProvider resource, you will not retrieve a list of the resources it contains; you will retrieve general properties of the ServiceProvider – its “metadata” if you like that term – including the URLs you can use to find or create resources. If you do a POST to the URL of a ServiceProvider, you will likely just get an HTTP Error. Two fundamental properties of a ServiceProvider are: oslc:creation: the URL of a resource to which you can POST representations to create new resources. oslc:queryBase: the URL of a resource that you can GET to obtain a list of existing resources in the ServiceProvider. This URL is called the “queryBase URL” and the resource identified by this URL is called the queryBase. In the simplest case, the creation URI and the queryBase URI will in fact be the same URL. ServiceProviders have a third important property – dialog – that is the foundation of the second major OSLC integration technique based on invocation of HTML web user interface dialogs of one tool by another. Dialogs are discussed in a separate section of this primer. You might think from the preceding description that the simplest ServiceProvider example might look something like the following, in Turtle notation. @prefix oslc: http://open-service.net/ns/core. http://acme.com/toolA/container1 a oslc:ServiceProvider; oslc:creation http://acme.com/toolA/container1/contents; oslc:queryBase http://acme.com/toolA/container1/contents. The example above is true to the spirit of OSLC, and captures the essential meaning of ServiceProvider accurately, which is why it is listed here, but the real OSLC syntax is more complex, and this example is not legal. OSLC Core supports more complex options for ServiceProviders, including the ability to have more than one creation URI and more than one queryBase URI, the ability to attach properties to each creation URI and each queryBase URI and to give hints about their intended usage and the ability to group creation URIs and queryBase URIs by the OSLC domain they are intended to support. In order to satisfy these requirements, OSLC introduces three additional concepts – Service, CreationFactory and QueryCapability. These are not primary concepts in OSLC and their instances are never independent HTTP resources with their own URLs. These three concepts are more like “structured data types” whose instances are used as property values in the state of a ServiceProvider - you should think of Service, CreationFactory and QueryCapability as technical details of the way the state of a ServiceProvider is organized rather than central OSLC concepts. QueryCapability allows properties to be associated with a queryBase URI, CreationFactory allows properties to be associated with a creation URI and Service allows (actually, requires) creation URIs and queryBase URIs to be grouped by OSLC domain. Because of these additional concepts, our simplest ServiceProvider actually looks like this: Example 1: @prefix oslc: http://open-service.net/ns/core#. http://acme.com/toolA/container1 a oslc:ServiceProvider; oslc:service [a oslc:Service; oslc:domain http://open-services.net/ns/cm#; oslc:creationFactory [a oslc:CreationFactory; oslc:creation http://acme.com/toolA/container1/contents]; oslc:queryCapability [a oslc:QueryCapability; oslc:queryBase http://acme.com/toolA/container1/contents] ]. Guidance – Define simple ServiceProviders We recommend that implementers of OSLC adopt the following simplified pattern of usage unless they have compelling reasons to do otherwise: 1. Focus first on identifying the basic containers implemented by the tool and expose each of these containers as a single ServiceProvider. Don’t attempt to create individual ServiceProviders for each type of resource. For example, if the data partitioning concept in your tool is project, create a single ServiceProvider for each project, even if the project can contain Defects, Risks, Issues, Comments, and Approvals. 2. Identify a single URL for each ServiceProvider that will be used both as the URL to which new resources can be POSTed (the creation URI) and the URL of the RDF container resource that lists the existing resources of the container (the queryBase URI). 3. Within each ServiceProvider’s representation, create a single Service with a single CreationFactory and a single QueryCapability each referencing the single URL established in step 2. Example 1 above shows exactly this pattern. What does a queryBase resource look like? The queryBase resource identified by a queryBase URI of a ServiceProvider is an RDF Container resource that lists resources in the ServiceProvider. If a ServiceProvider has multiple queryBases, it is undefined which queryBases a resource will show up in after being POSTed to a creation URI. The representation of the queryBase is a standard RDF Container representation using the rdfs:member predicate. (http://www.w3.org/TR/rdf-schema/ch_member ) For example, if I have an OSLC container with the URL http://acme.com/oslc/container/1) it might have the following representation: @prefix rdfs: http://www.w3.org/2000/01/rdf-schema#. http://acme.com/oslc/container/1 rdfs:member http://acme.com/oslc/resource/000000000; # … 999999998 more triples here … rdfs:member http://acme.com/oslc/resource/999999999. OSLC does not recognize or recommend the use of other forms of RDF Container such as Bag and Seq because they are not friendly to SPARQL query. This follows standard linked data guidance for RDF usage (e.g. http://linkeddatabook.com/editions/1.0/#htoc16). Learn more about ServiceProvider Resources in the OSLC Core specification Resources inside a ServiceProvider Any HTTP resource with any representation might be found inside a ServiceProvider. In many of the most interesting cases, the resources will be OSLC resources. An OSLC resource is simply a resource whose type is defined in some OSLC specification, usually one of the domain specifications created by one of the OSLC domain workgroups. All OSLC resources share some common characteristics. You can request an RDF/XML representation of the resource. All OSLC resources have their state defined by a set of RDF properties that may be required or optional. This set of properties was designed to support OSLC integration scenarios – it is expected that any particular resource may have many more properties that are not defined in an OSLC specification. The ability of RDF to represent this kind of open extensible information model is one of the reasons it was chosen for OSLC. Although an OSLC resource’s state must be expressible in RDF, and it must have an RDF/XML representation, the resource may have other representations as well. You have already seen examples of Turtle - HTML and JSON would be popular additions, and OSLC sets no limits. OSLC protocols use standard media types. OSLC does not require and does not encourage the definition of any new media types. The goal is that any standards-based RDF or Linked Data client be able to read and write OSLC data, and defining new media types would prevent that in most cases. OSLC resources use common property names for common concepts. In the current state of the art in lifecycle tools, each tool defines its own properties for common concepts like label, description, creator, last-modification-time, priority, and so on. In many cases an administrator can define these properties locally for an installation, so the tool vendors may not control the vocabulary. This is usually viewed as a good feature by practitioners who want their tools to match their local terminology and processes, but it makes it much harder for organizations to subsequently integrate tools in an end-to-end lifecycle. OSLC resolves this by requiring all tools to expose these common concepts using a common vocabulary for properties, which you will remember are identified by URIs in RDF. Tools may choose to additionally expose the same values under their own private property names in the same resources. In general, OSLC avoids inventing its own property names where possible – it uses ones from popular RDF-based standards like the RDF standards themselves, Dublin Core, and so on. In some cases, OSLC has invented property URLs where no match was found in popular standard vocabularies. RDF classes and properties in OSLC OSLC resource types can be used as the value of the rdf:type predicate in resources. Following the standard rules of RDF, this means that OSLC resource types are RDFS classes (by definition of rdf:type in the RDF spec). A resource’s membership in a class extent can be indicated explicitly – by a triple in the resource representation that uses the rdf:type predicate and the URL of the class - or derived implicitly. In RDF and OSLC there is no requirement to place an rdf:type triple in each resource, but this is a good practice, since it makes query more useful in some cases. OSLC Datatypes OSLC uses RDF concepts to define a number of standard properties. OSLC properties are RDF properties (by definition, because they are used as predicates). RDF does not by itself define datatypes to be used for property values, so OSLC lists a set of standard datatypes to be used in OSLC. The list is Boolean, DateTime, Decimal, Double, Float, Integer, String and XMLLiteral. Of course, OSLC also uses URI references and blank nodes as described in the RDF documentation. The intention of some OSLC properties – like oslc:service, oslc:creationFactory and oslc:queryCapability – is that they only be used to reference blank nodes, never to reference true HTTP resources. To be able to express this intent, the OSLC Core specifies a number of OSLC-specific value types that are used in the specification and can also be found in ResourceShape (see later) property descriptions. These are the “resource value types”, Resource, Local Resource, and AnyResource. Resource means that the value will be an RDF URI reference. Local Resource means the value will be an RDF blank node identifier and AnyResource means it can be either. The OSLC specification allows you to further specify whether the referenced resource must be defined inside the same representation that contains the reference, in a separate document, or either, using the following values for the representation property of the property: http://open-service.net/ns/core#Reference, http://open-service.net/ns/core#Inline, or http://open-service.net/ns/core#Either Guidance - Usage of the representation property There is ongoing discussion in the OSLC Core workgroup on the proper meaning and usage of the representation property. Defensive OSLC clients should always assume that a URI reference found in the representation of one resource may identify another resource on the web with its own independent representation or may – via a fragment identifier in the URL - identify a resource whose representation is part of the current representation. Similarly defensive clients should assume that an identifier may be either a URI reference or a blank node identifier - this is the standard RDF rule. Before dereferencing a URIRef that is found as the value of a property in an RDF graph, clients should look to see whether the information they are looking for about the resource identified by that URIRef is already included in the current graph in the form of triples with that URIRef as the subject. Also before dereferencing a URIRef, clients should verify that it does not circularly identify the current graph, perhaps with the addition only of a fragment identifier. Unknown properties and content As described before, OSLC depends on an open model for resource state. The specification defines some standard properties for integration, but also assumes that any given resource may have many more properties than are defined in the specification. Some tools will only support a fixed set of properties for a particular type of resource and may provide a ResourceShape that lists that set of properties. Clients should still assume that the set of properties for a type in an arbitrary tool may be open. This can happen several different ways. One is that the tool specifically supports an extensible set of properties in the sense that different resources of the same type may not all have the same properties. Another possibility is that the list of properties is fixed at any one time, but that older or newer resources may have different properties. For OSLC Defined Resources, clients should assume that an OSLC server implementation may discard triples for properties of which it does not have prior knowledge - an OSLC implementation may discard property values that are not part of the resource definition or Resource Shape known by the server. The rule is different for clients. When doing an update, OSLC clients must preserve any unknown property-values and other content in OSLC Defined Resources. Open Model Many specifications have a “closed model”, by which we mean that any reference from a resource in the specification will necessarily identify a resource in the same specification or a referenced specification. UML is an example of a closed specification – every UML reference is to another UML object. By contrast, the HTML anchor tag can point to any HTTP resource, not just other HTML resources. OSLC works more like HTML in this sense. Here are some examples: Any HTTP resource can be contained in a ServiceProvider, not just resources defined in OSLC specifications. A URL reference in one OSLC resource may in general point to any HTTP resource, not just an OSLC resource. OSLC specifications will not usually constrain the value for a property in one OSLC specification to be the URL of a resource in a different OSLC specification (footnote 3), although it is common for a property defined in one OSLC specification to constrain its value to being the URI reference of a resource in the same specification. OSLC specifications generally avoid constraining a reference to be a resource in another specification. This independence allows OSLC specifications to evolve independently, and new ones to be added, without changing existing ones, and also allows tools at different version levels to interoperate. Tip! A consequence of this independence is that tool implementations that traverse URL links from an OSLC resource in one OSLC specification that may reference something outside the same specification should always code defensively and be prepared for any HTTP resource at the end of the link. Defensive coding by OSLC tools is necessary to allow sets of tools that communicate via OSLC protocols to be independently upgraded. Optimistic Collision Detection on Update Because the update process involves first getting a resource, modifying it and then later putting it back to the server there is the possibility of a conflict, e.g. some other client may have updated the resource since the GET. To mitigate this problem, OSLC implementations should use the HTTP If-Match header and etags to detect collisions. Learn more about OSLC Resources in the OSLC Core specification. Resource paging It sometimes happens that a resource is too large to reasonably transmit in a single HTTP message. A client may anticipate that a resource will be too large - for example, a client tool that accesses defects may assume that an individual defect will usually be of sufficiently constrained size that it makes sense to request all of it at once, but that the list of all the defects ever created will typically be too big (footnote 4). Alternatively, a server may recognize that a resource that has been requested is too big to return in a single message. To address this problem, OSLC resources may support a technique called Resource Paging that enables clients to retrieve representations of resources one page at a time. For every resource whose URL is url, an OSLC implementation may define a companion resource whose URL is url?oslc.paging=true. The meaning of this resource is “the first page of url”. Clients that anticipate that a particular resource will be too large may instead fetch this alternate resource. Servers that determine that a requested resource is too large may respond with a 302 redirect message, directing the client to the “firstPage” resource (footnote #5). The representation of url?oslc.paging=true will contain a subset of the triples that define the state of the resource whose URL is url. The subject of those triples will be url, not url?oslc.paging=true. In addition, the representation of url?oslc.paging=true may include a few triples whose subject is url?oslc.paging=trueitself. Examples are triples whose predicate is oslc:nextPage, dcterms:description and so on. Note that pagination is only defined for resources whose state can be expressed in RDF as a set of RDF triples. Pagination is undefined for resources whose state cannot be represented in RDF. Pure binary resources, encrypted resources, or digitally signed resources might be examples. The representation of a Page is defined by first paginating the underlying triples that express the state of the resource being paginated, and then performing whatever standard mapping is used to map from each page of triples to the requested representation. In other words, we do not paginate the representations; we paginate the RDF resource state itself and then create the representations of each page in whatever media type is requested. This provides a general specification for both RDF and non-RDF representations of pages of RDF resources. Examples of non-RDF representations are HTML and JSON. For example, if I have an OSLC container with the URL http://acme.com/oslc/container/1, it might have the following representation (in Turtle notation): @prefix rdfs: http://www.w3.org/2000/01/rdf-schema#. http://acme.com/oslc/container/1 rdfs:member http://acme.com/oslc/resource/000000000. # … 999999998 more triples here … rdfs:member http://acme.com/oslc/resource/999999999. This representation has a billion triples and over 90 billion characters, which might be a bit big. Assuming that the implementation that backs this resource supports paging, a client can chose instead to GET the related resource http://acme.com/oslc/container/1?oslc.paging=true. The representation of this latter resource would look like this: @prefix rdfs: http://www.w3.org/2000/01/rdf-schema#. http://acme.com/oslc/container/1 rdfs:member http://acme.com/oslc/resource/000000000. … 98 more triples here … rdfs:member http://acme.com/oslc/resource/000000099. pay attention to the subject URL of the following triple http://acme.com/oslc/container/1?oslc:paging=true oslc:nextPage http://acme.com/oslc/xxxxxxxxx/page2. As you can see, the representation of this smaller “firstPage” resource contains the first 100 triples that you would have gotten in the representation of the large resource in exactly the same form - the same subject, predicate and object - as in the representation of the large resource. In addition, it contains another triple - whose subject is the “firstPage” resource itself, not the bigger resource - that provides the URL of a third resource that will contain the next page of triples from the bigger resource. The format of the URLs of the second and subsequent pages (if they exist) is not defined by the OSLC specification – an OSLC implementation can use whichever URL it pleases. Note that although this example shows the triples in a precise order for purposes of simplicity and clarity of the example, there is no concept of ordering of triples in RDF, so the triples can be in any order both within and across pages. As illustrated above, when a page is returned it will include the triple: url of current page oslc:nextPage url of next page. You can tell when you are on the last page by the absence of an oslc:nextPage triple. Because paging is unstable (see below), by the time a client follows an oslc:nextPagelink there may no longer be a next page. The OSLC server implementation in this case may respond with an HTTP 404 error. The OSLC specification permits url?oslc.pageSize=n as an alias for url?oslc.paging=true. Because it is just an alias, it has exactly the same meaning and behavior. An OSLC server implementation may (but is not obliged to) adjust the number of triples on the first and subsequent pages based on the value of n. When Resource Paging is used, the values of a multi-valued property of a single resource may be split across resource pages. All triples that reference the same blank node, must all be contained on the same page, since a blank node cannot be referenced from a different page (this is simply an observation on how RDF works, not an OSLC policy or limitation). Unstable Paging Because HTTP is a stateless protocol and OSLC Services manage resources that can change frequently, OSLC clients should assume that resources can change as they page through them using the oslc:nextPage mechanism. Nevertheless, each triple of the resource that exists when the first page is returned and is not subsequently deleted during the paging interaction must be included on at least one page. \[Including the same triple more than once is permissible – identical triples are always discarded in RDF - but servers need to ensure that the same triple is not returned multiple times with different object values.\] Triples that are added after the first page is returned may or may not be included in subsequent pages by a server. Learn more about Resource Paging in the OSLC Core specification. ResourceShapes In general, the validation rules that a particular container may apply in deciding to whether or not to accept a POST of a new resource representation can have unlimited complexity, and OSLC makes no attempt to describe them. Similarly the format of the representation of existing resources can be complex and variable, and the validation of a representation used to update an existing resource via PUT can also be complex. Despite the possibility of unlimited complexity, OSLC recognizes that there is a common pattern that is adopted by many, though not all tools, as described here: Define a fixed set of types of resources. These are RDF Classes that can be referenced within the representation of a resource using the rdf:type predicate. For each class, define a fixed list of properties whose values must or may be set when creating or updating a resource of that type. Expected datatypes and values for these properties is also useful information. Similarly, for each class, define a fixed list of properties whose values may be encountered when reading a resource of that type. It is common for a “read” resource to have more properties than a “written” resource – servers often add properties like last-modification-date, creator and so on to those provided by a client on creation or update, and it’s nice to know what those extra properties are because they can be used in queries. OSLC defines the OSLC ResourceShape resource to allow the specification of a list of properties with allowed values and the association of that list with an RDFS Class. ServiceProviders that implement the simple standard model of “resources of a particular type have a fixed set of properties” can use this feature – ServiceProviders that don’t can ignore it. Note on relationship of ResourceShape to other standards. Although we’re all very familiar with this model from relational databases and object-oriented programming, it is not the “natural” model of RDF, nor is it the model of the natural world. This model says that if you are of type X, you must have these properties. RDF and the natural world work the other way around – if you have these properties, you must be of type X. This is why there is no standard RDF vocabulary that can express the equivalent of ResourceShapes. OWL is a separate RDF-based standard which, at first glance, appears to solve the same problem as ResourceShapes. However, OWL, like RDF Schema, infers new triples from a given set of triples. OWL lets you specify inference rules about properties and types, including rules of the form "if you have these properties, you must be of type X". In contrast, ResourceShapes lets you specify the constraints that a given set of triples must have. In relational database terms, ResourceShapes are similar to TABLE definitions and integrity constraints while OWL rules are similar to VIEW definitions. To help you understand how ResourceShapes work, below is an example shape for a fictional "Tool A" which exists at the URL http://acme.com/toolA/resourceShape1. You can see, below, the shape describes a Defect resource (http://acme.com/toolA/Defect)and three properties. The first is the standard Dublin Core "title" predicate, which is optional. The second is a Tool A-specific property called "priority" and the third is another Tool A-specific property called "defectiveComponent." The priority property definition also defines three allowed values for setting severities of high, medium and low. @prefix oslc: http://open-services.net/ns/core . @prefix xsd: http://www.w3.org/2001/XMLSchema# . @prefix dcterms: http://purl.org/dc/terms/ . http://acme.com/toolA/resourceShape1 a oslc:ResourceShape ; oslc:describes http://acme.com/toolA/Defect ; oslc:property [ a oslc:Property ; oslc:name "title" ; oslc:occurs oslc:Zero-or-many ; oslc:propertyDefinition dcterms:title ; oslc:valueType xsd:String ; dcterms:title "details for dcterms:title property" ] ; oslc:property [ a oslc:Property ; oslc:allowedValue http://acme.com/toolA/high , http://acme.com/toolA/medium , http://acme.com/toolA/low ; oslc:name "priority" ; oslc:occurs oslc:Exactly-one ; oslc:propertyDefinition http://acme.com/toolA/priority ; oslc:valueType oslc:Resource ; dcterms:title "details for priority property" ] ; oslc:property [ a oslc:Property ; oslc:name "defectiveComponent" ; oslc:occurs oslc:Zero-or-many ; oslc:propertyDefinition http://acme.com/toolA/defectiveComponent ; oslc:range http://acme.com/toolA/Component ; oslc:valueType oslc:Resource ; dcterms:title "details for component property" ] ; dcterms:title "Shape of resources of type Defect" . And below is an example Defect resource representation that provides the three properties specified by the shape. @prefix dcterms: http://purl.org/dc/terms/. @prefix toolA: http://acme.com/toolA/. toolA:defect1 a toolA:Defect; dcterms:title "Server failure during startup"; toolA:priority toolA:high; toolA:defectiveComponent http://acme.com/toolA/comp/Server. Guidance – implement simple validations for create and update OSLC implementations should try to make it easy for programmatic clients to create and update resources. If OSLC implementations associate a lot of very complex validation rules that need to be satisfied in order for an update or creation to be accepted, it becomes difficult or impossible for a client to use the protocol without extensive additional information specific to the tool that needs to be communicated outside of the OSLC specifications. The preferred approach for tools is to allow creation and update based on the sort of simple validations that can be communicated programmatically through a ResourceShape. Additional checks that are required to implement more complex policies and constraints should result in the resource being flagged as requiring more attention, but should not cause the basic create or update to fail. It is possible that some tools or tool installations will have very strict requirements for complex constraints for data, and that they are unable or unwilling to allow the creation of resources that do not satisfy all those constraints even temporarily. Those tools or tool installations should be aware that as a consequence they may be making it difficult or impossible for external software to use their OSLC protocols without extensive customization. Learn more about ResourceShapes in the OSLC Core specification Query mechanisms Finding information by performing a GET on a web of OSLC resources or on a ServiceProvider is a powerful, general mechanism, but sometimes it is inconvenient or inefficient to find specific information this way. To help with this problem, OSLC provides 2 distinct query mechanisms to find information in resources faster. Starting from an OSLC Resource URL OSLC implementations may support a technique called Selective Properties to enable clients to retrieve only selected property values of a specific resource. For each resource whose URL is url, an OSLC implementation may define a set of related resources whose URLs are of the form url?oslc:properties= . Each of these resources is a related resource whose representation contains the specified subset of triples of the resource whose URL is url and/or related resources. Here's how the selective properties values oslc.properties and oslc.prefix work. oslc.properties The oslc.properties key=value pair portion of the URL lets you specify the resource with the set of properties you wish to retrieve. Both immediate and nested properties may be specified. A nested property is a property that belongs to the resource referenced by a property value in another resource. Nested properties are enclosed in brace brackets, and this nesting may be done recursively, i.e. a nested property may contain other nested properties. For example, suppose we have a bug report resource at the following URL: http://example.com/proj1/4242 Suppose this bug resource has properties such as dcterms:title, dcterms:description, and dcterms:creator, and that dcterms:creator refers to a foaf:Person resource that has properties such as foaf:givenName and foaf:familyName. Suppose you want to retrieve a resource that includes the dcterms:title of the bug report and the foaf:givenName and foaf:familyName of the person referred to by the bug report’s dcterms:creator. The following URL illustrates the use of oslc.properties in the query string of a URL to include those properties: http://example.com/proj1/4242?oslc.properties=dcterms:title,dcterms:creator{foaf:givenName,foaf:familyName} This URL identifies a resource whose representation contains exactly the desired information. The representation would look like this: @prefix dcterms: http://purl.org/dc/terms/. @prefix foaf: http://http://xmlns.com/foaf/0.1/. http://example.com/proj1/4242 dcterms:title "Bug 4242". http://example.com/proj1/4242 dcterms:creator http://example.com/users/1. http://example.com/users/1 foaf:givenName "Dave". http://example.com/users/1 foaf:familyName "Johnson". oslc.prefix Languages such as Turtle and SPARQL let you define URI prefixes (e.g. dcterms:) so you can represent URIs more compactly (e.g. dcterms:title). The use of compact URIs is also convenient when writing query strings. OSLC domain specifications predefine some prefixes for this purpose. For example, the oslc.properties query string assumes that dcterms: and foaf: have been predefined. However, OSLC domain implementations may add new properties and so it is not possible to predefine all prefixes. To handle this situation, you can define additional prefixes in the query string using oslc.prefix. Suppose that foaf: was not predefined in the above example. You add its definition to the query string as follows (line breaks added for formatting marked with //): http://example.com/proj1/4242 // ?oslc.prefix=foaf=http://xmlns.com/foaf/0.1/ // &oslc.properties= // dcterms:title,dcterms:creator{foaf:givenName,foaf:familyName}. Starting from a ServiceProvider The section entitled Starting from an OSLC Resource URL describes how to efficiently extract information from a graph of resources if you have the URL of a specific resource to start from. There is also an important case where the starting point is a ServiceProvider. In addition to providing queryBases for a ServiceProvider, an OSLC implementation may provide additional resources that allow clients to find selective subsets of the resources and resource properties in queryBases. The URLs of these resources are constructed by adding a query component to the URL of the queryBase rather than to the URL of an OSLC resource. This can be much more convenient and efficient than performing a GETon the whole container, or paging through the container. Query Syntax The OSLC Core Spec Query Specification document defines a standard set of OSLC query parameters. Query example In the following examples, assume a ServiceProvider that contains bug reports (and potentially other resources) for a particular project. Assume also that those bug reports point to user accounts. The user accounts could be in the same ServiceProvider as the bug reports, but since the same accounts may be used to identify users in multiple projects, it’s more likely they are held somewhere else. The URL of the queryBase for the ServiceProvider is http://example.com/proj1 and the queryBase resource looks like this: the query base for proj1 http://example.com/proj1 rdfs:member http://example.com/proj1/4242 , http://example.com/proj1/4243 , http://example.com/proj1/4244 , http://example.com/proj1/4245 , http://example.com/proj1/4246 , http://example.com/proj1/4247 , http://example.com/proj1/4248 . The actual bug report resources look like the following: representation of http://example.com/proj1/4242 http://example.com/proj1/4242 dcterms:title "Bug 4242" ; dcterms:creator http://example.com/users/1 . representation of http://example.com/proj1/4243 http://example.com/proj1/4243 dcterms:title "Bug 4243" ; dcterms:creator http://example.com/users/2 . representation of http://example.com/proj1/4244 http://example.com/proj1/4244 dcterms:title "Bug 4244" ; dcterms:creator http://example.com/users/3 . representation of http://example.com/proj1/4245 http://example.com/proj1/4245 dcterms:title "Bug 4245" ; dcterms:creator http://example.com/users/1 . representation of http://example.com/proj1/4246 http://example.com/proj1/4246 dcterms:title "Bug 4246" ; dcterms:creator http://example.com/users/2 . representation of http://example.com/proj1/4247 http://example.com/proj1/4247 dcterms:title "Bug 4247" ; dcterms:creator http://example.com/users/3 . representation of http://example.com/proj1/4248 http://example.com/proj1/4248 dcterms:title "Bug 4248" ; dcterms:creator http://example.com/users/1 . Suppose now that we use the query syntax to compose the following URL. http://example.com/proj1?oslc.where=dcterms:creator=http:example.com/users/1 This URL identifies a resource that contains a subset of the queryBase information, as shown here: @prefix rdfs: http://www.w3.org/2000/01/rdf-schema#. http://example.com/proj1 rdfs:member http://example.com/proj1/4242 , http://example.com/proj1/4245 , http://example.com/proj1/4248 . The example above selected a subset of bug reports based on a property of the bug reports themselves. It is possible to further restrict the list by selecting based on a property of the user resources that the bug reports reference, as shown below. The URL of the query resource is this: http://example.com/proj1?oslc.where=dcterms:creator{foaf:givenName="Martin" and foaf:familyName="Nally"} And its representation is this: @prefix rdfs: http://www.w3.org/2000/01/rdf-schema# . http://example.com/proj1 rdfs:member http://example.com/proj1/4243 , http://example.com/proj1/4246 . For the purposes of this example, assume the user accounts look like this: user 1 http://example.com/users/1 a foaf:Person , foaf:givenName "Dave" ; foaf:familyName "Johnston" . user 2 http://example.com/users/2 a foaf:Person , foaf:givenName "Martin" ; foaf:familyName "Nally" . user 3 http://example.com/users/3 a foaf:Person , foaf:givenName "Arthur" ; foaf:familyName "Ryman" . It is also possible to use query to retrieve property values for the bugs and users, not just a list of bugs, as shown in the following example. The URL of the query resource is http://example.com/proj1?oslc.where=dcterms:creator=http:example.com/users/3&oslc.select=dcterms:title And the resulting representation is this: @prefix dcterms: http://purl.org/dc/terms/ . @prefix foaf: http://xmlns.com/foaf/0.1/ . @prefix rdfs: http://www.w3.org/2000/01/rdf-schema . http://example.com/proj1 rdfs:member http://example.com/proj1/4244 , http://example.com/proj1/4247 . http://example.com/proj1/4244 dcterms:title "Bug 4244" . http://example.com/proj1/4247 dcterms:title "Bug 4247" . Additional Query Capabilities In addition to the capabilities illustrated in these examples, Query includes syntax for inequality operators (!=, =, =, , ), the ability to test that a value is an element within a set of values, ordering of results, and full-text searches. See the specification for details. Guidance on Query OSLC implementers have a few options when it comes to query. They can implement any of the following: 1. OSLC Query The OSLC query capabilities are designed to be a compromise. They are powerful enough to be useful to clients, but simple enough to be implemented with reasonable effort by tools. It is not a trivial effort to implement the OSLC Query capabilities, but it’s not an insurmountably difficult problem either. Common approaches to implementing the OSLC query capability are to transform an OSLC query into an existing query API implemented by the tool, or to transform an OSLC query into some query language that is understood by the underlying implementation technologies used by the tool – often SQL on an RDBMS. This mapping will have to take account of the transformation of the OSLC resource model into the target data model as well as the transformation of the OSLC query syntax into the underlying query syntax. The difficulty of this transformation may depend as much on the former as the latter. 2. SQL You might think that since many existing tools are built on RDBMS technologies, it would be trivially simple to offer SQL as a query language. In practice this is usually much harder than it sounds since the internal data model of the tool is often far removed from the simple resource model of OSLC. This means that a transformation between external SQL and internal SQL is needed, and since SQL is a fully-featured query language, it is usually harder to implement this transformation than to implement OSLC Query. 3. SPARQL Another option is to implement SPARQL. Since SPARQL is a sophisticated query language, it is probably not reasonable to expect that tools will implement a SPARQL query capability by transforming it to a different underlying data model and query language supported by the tool’s implementation data management layer, as might be practical for implementing OSLC Query. However, there are a number of freely-available open-source RDF triple-store implementations that offer complete SPARQL query implementations, so another implementation strategy is to make a copy of the most recent version of every resource and put it in an RDF triple-store, keep it up to date in real time, and then offer OSLC users SPARQL query using the SPARQL capabilities of the RDF triple store. Of course, if the state of the resources in the tool fits well with the relational data model, implementers could use the same technique with RDBMS technologies to expose SQL as a query language. 4. Proprietary Implementing a proprietary query language is always an option, but it has a much lower client value, since a client is faced with the need of “learning” the proprietary query language of each tool. Learn more about Query Mechanisms in the OSLC Core specification ServiceProviderCatalog Most tools will expose more than one ServiceProvider, and there are different reasons why it might sometimes be useful for tools to expose defined sets of ServiceProviders. OSLC provides the concept of ServiceProviderCatalog for defining such sets. A ServiceProviderCatalog also has an optional property whose value is an OAuthConfiguration. If this property is set, clients can assume that all the ServiceProviders in the list can be accessed with the same OAuth tokens. Guidance for ServiceProviderCatalog usage OSLC provides the concept of a ServiceProviderCatalog, but does not specify how it is used, or what the meaning is of the set of ServiceProviders defined by a ServiceProviderCatalog. Clients should refer to the documentation specific to a particular tool for guidance on how to find and use any ServiceProviderCatalogs it exposes. Learn more about ServiceProviderCatalog in the OSLC Core specification. Delegated user interface dialogs As we have seen, OSLC specifies simple HTTP protocols for locating, creating, updating, reading and deleting lifecycle resources. In many cases this is very useful, but for some integration scenarios, exploiting these protocols is not the best strategy. Suppose I’m the implementer of a test management tool that has a graphical user interface and I want to allow my users to easily create defects in a defect tracking tool when a test fails, or associate the failed test case with an existing defect if one exists. I could use the OSLC protocols already described to implement this integration, but if I did that I would have to implement the user interface needed for my users to enter all the fields of a new defect, or display lists of existing ones. In addition to being a lot of work, this could result in a poor user experience, because I cannot possibly understand all the detailed validations on new defects that a particular defect tool will demand, so I cannot help my users fill in all the appropriate fields with valid values. Fortunately, OSLC offers an additional style of integration that solves these problems. This style is based on the concept of a dialog. Continuing the example above, the idea of a dialog is that instead of the test management tool implementing the UI for creating or selecting defects, it asks the defect tracking tool to display to the user a “dialog” from its own user interface for the purpose. In the case of a dialog to create a new defect, the test tools can provide initial data from the test case to the dialog to “seed” the new defect, and the test tool can also get back the URL of the defect that finally gets created. In the case of a selection dialog, the test management tool gets back the URL of the selected defect, which it can then reference from the test case. These are the two primary cases supported by Dialogs: Resource creation: when a user of a web application needs to create a new resource in an OSLC Service Provider. In this case the web application asks the service provider to provide a UI for resource creation and the provider notifies the application when the creation has been completed or canceled by the user. Resource selection: when a user of a web application and needs to pick a resource managed by an OSLC Service Provider. In this case the web application asks the service provider to provide a UI for resource selection and the provider notifies the application when a resource or resources has been selected or if the selection was canceled. Learn more about Delegated UI Dialogs in the OSLC Core specification. UI Preview The information in an OSLC resource is composed of RDF triples, defining the values of properties. Triples whose object is the URI of another resource are often called links. When presenting a link to a human user, it is common to want to include information about the other resource referenced by the URI of the link. This information might be included in the rendering of the page of the current resource, or on conventional PCs that have a mouse as an input device it might appear in a pop-up window when the mouse is over the link. \[Obviously, the pop-up window technique does not apply for touch-screen devices like smart-phones and tablets, or at least the pop-up has to be triggered by a different gesture.\] OSLC defines a protocol that makes it convenient for an application to obtain a small amount of information about the resource that is the target of a link for the purposes of this sort of display. UI preview consists solely of the definition of a new media type, and a representation format for that media type. The new media type is application/x-oslc-compact+xml. When a GET is performed on a resource with this media type, a conforming implementation is expected to return a small amount of information about the resource suitable for display purposes. This information is in RDF format and includes the following properties: The title of the resource A shorter title of the resource The URL of an icon for the resource. The client application is expected to perform a subsequent GET to retrieve the icon. The URL of an HTML document suitable for displaying in a small pop-up window. The client application is expected to perform a subsequent GET to retrieve the HTML. Some information on sizing for these smaller and larger pop-ups OSLC requires that this information be returned in RDF/XML format - other RDF or non-RDF representations are not allowed. UI Preview example ?xml version="1.0" encoding="UTF-8" ? <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:oslc="http://open-services.net/ns/core#" <oslc:Compact rdf:about="http://example.com/bugs/12345" dcterms:title 12345: &lt;s&gt;Null pointer exception during startup&lt;/s&gt; /dcterms:title oslc:shortTitle 12345 /oslc:shortTitle oslc:icon rdf:resource="http://example.com/icons/defect.jpg" / oslc:smallPreview oslc:Preview oslc:document rdf:resource="http://example.com/bugs/12345?hover=small" / /oslc:Preview /oslc:smallPreview oslc:largePreview oslc:Preview oslc:document rdf:resource="http://example.com/bugs/12345?hover=large" / oslc:hintWidth 60em /oslc:hintWidth oslc:hintHeight 20em /oslc:hintHeight /oslc:Preview /oslc:largePreview /oslc:Compact /rdf:RDF Learn more about UI Preview in the OSLC Core specification. OAuth OSLC does not mandate a particular approach to authentication and access control, but it acknowledges the existence and use of OAuth. Use of OAuth requires a client to know 3 fixed URLs that are used to negotiate tokens. OSLC defines a resource, OAuthConfiguration, for holding these URLs, and defines an optional property on both ServiceProvider and ServiceProviderCatalog for holding OAuthConfiguration values. Clients will still need to consult the documentation specific to a tool to know whether OAuth is supported by the tool, and if so where the tool will store the OAuth URLs. Learn more about OAuth in the OSLC Core specification.

OSLC4JS

OSLC4JS is a set of related open source projects that support the creation and integration of Open Services for Lifecycle Collaboration (OSLC)-based client and server applications that leverage JavaScript and Node.js capabilities. OSLC4JS projects cover the complete end-to-end capabilities required to build, extend, and integrate web apps that exploit OSLC integration capabilities and linked data resources. Why should I contribute? Because you’ll see a lot of benefits. Developers will find that it makes it easy to add OSLC capabilities to any Node or Express Web application, including client and server components of that application. It will help you extend and integrate OSLC applications to support end-user scenarios and comprehensive cross-tool governance. Go

Tasktop: Helping a Center of Excellence live up to its name

Tasktop Sync Case Study on enabling the customer to increase both velocity AND quality. View

PROSTEP OpenPDM OSLC Adapter Product Overview

The PROSTEP OpenPDM OSLC Adapter makes your PLM system(s) available to the OSLC world. It offers OSLC standard services, especially for those PLM systems which don’t offer native ones. The adapter is an add-on for the OpenPDM integration framework which provides connectors to a wide range of systems. The OpenPDM OSLC services can be integrated in any OSLC consuming applications. The gap between ALM and PLM can be closed. This presentation provides details on the OpenPDM OSLC Adapter including overview, reference project and technical information. For more details contact infocenter@prostep.com. Download

OSLC4Net

A toolkit for developing OSLC consumers and providers for .NET environments that contains the following tools: OSLC4NET SDK, which is very similar to the OSLC4J component of Eclipse Lyo: you can model OSLC resources as .NET objects, annotate them with OSLC attributes, and use the REST services provided by ASP.NET MVC 4 for HTTP requests and request handling. OSLC Change Management consumer implementation in the form of a test suite Go

A survey of commercial tools with OSLC support

This survey presents a list of commercial tools that provide OSLC support. The survey describes in detail which OSLC capabilities are supported to which tools. View the survey online. A report that summarises this survey, as well as give general reflections over OSLC implemenation can be found as J. El-khoury, "An Analysis of the OASIS OSLC Integration Standard, for a Cross-disciplinary Integrated Development Environment : Analysis of market penetration, performance and prospects," , TRITA-ITM-RP, 978-91-7873-525-9, 2020.

Get IBM RTC and HP ALM To Blend Together Like Peanut Butter and Jelly

Webinar on integrating HP ALM and IBM RTC, presented by Wesley Coelho, Director of Business Development at Tasktop Technologies, and Lance Knight, Director of Solution Architects at Tasktop. Watch

Tear Down the Walls Between Requirements, Development and Testing

In this webinar, Robert Elves, co-founder of Tasktop Technologies, describes how Business Analysts using Rational Requirements Composer can successfully create and revise Requirements while automatically keeping the Testing team up-to-date on the latest changes through the use of Tasktop Sync. Watch

Linked Data and OSLC for Tool Interoperability

In a lecture given in an OSLC workshop at the Embedded Conference Scandinavia, Jad El-khoury explains the OSLC standard, the underlying linked data technologies that constitute a foundation for the OSLC. After watching the lecture, you will gain a solid understanding of the linked data fundamentals, have a comperehsive overview of various parts of OSLC and be ready to individually work through the workshop material for Eclipse Lyo, an SDK for implementing OSLC-compliant solutions. Part 1 Part 2

New and updated tools in Eclipse Lyo: Toolchain Designer & Lyo Store

In this video, Andrew Berezovskyi, a Lyo project lead will describe the latest support tools that were contributed to Eclipse Lyo, which will further aim the development of OSLC adaptors and toolchains. {{ youtube tZxPzlSTdeM }} Lyo is an Eclipse project aimed at helping the community adopt OSLC specifications and build OSLC-compliant tools. Learn more about Lyo on https://www.eclipse.org/lyo/

Beyond PLM

A blog, by Oleg Shilovitsky, for the community of people looking for information about Engineering and Manufacturing Software. This has much information relevant for the OSLC community. Visit

Results search

Specifications

The table below provides a convenient place to see the currently available OSLC specifications, their status, and links to the documents. Many of these specifications are still under development so you should consult the actual documents for the most up to date information. The vocabularies for use in applications can be found on the Vocabularies page. The titles below are abbreviated for convenience. The full titles a available from the linked documents. For multi-part specifications, typically only the main specification is listed. The other parts are available from that specification. Status refers to the OASIS Standards Track Work Products in the OASIS Naming Directives Working Draft (WD) \[not approved, no official status\] Project Specification Draft (PSD) !-- * Committee Specification Public Review Draft (CSPRD) -- Project Specification (PS) Candidate for OASIS Standard (COS) OASIS Standard (OS) Final Indicates an open-services.net OSLC specification that has not yet been migrated to OASIS. Note: The open-services.net specifications that are being migrated to OASIS by the OSLC Domains TC are strictly a document maintenance exercise. That is, a Final open-service.net specification may appear as an OASIS CSD with different formatting, but will have the same specification normative content. Migration of these documents to OASIS will therefore have no impact on implementations. open-services.net specifications that do not yet have at least OASIS CSD status will reference the existing (PDF) open-services.net specification, and the status will be shown in italics. Active Publications | Title | Publisher | Description | |:-------:|:--------------------:|-------------| | Query 3.0 PS01 | OSLC Open Project | Defines a simple, implementation independent selection and projection query capability. | | Quality Management 2.1 PS01 | OSLC Open Project | Defines the OSLC services and vocabulary for the Quality Management domain. | | Change Management 3.0 PS01 | OSLC Open Project | Defines the OSLC services and vocabulary for the Change Management domain. | | Core 3.0 PS01 | OSLC Open Project | Latest published draft of the OSLC 3 specification. | | Core 2.0 Final | OSLC Core WG (closed) | A collection of specifications that defines the basic patterns, protocols and capabilities of OSLC clients and servers. | | Tracked Resource Set 2.0 Finalized Draft | OSLC Core WG (closed) | Allows servers to expose a set of resources whose state can be tracked by clients. | | Requirements Management 2.0 Final | OSLC Requirements Management WG (closed) | Defines the OSLC services and vocabulary for the Requirements Management domain. | | Requirements Management 2.1 PS01 | OSLC Open Project | Defines the OSLC services and vocabulary for the Requirements Management domain. | | Quality Management 2.0 Final | OSLC Quality Management WG (closed) | Defines the OSLC services and vocabulary for the Quality Management domain. | | Architecture Management 2.1 CS01 | OSLC Domains TC (closed) | Defines the OSLC services and vocabulary for the Architecture Management domain. | | Asset Management 2.0 Final | OSLC Asset Management WG (closed) | Defines the OSLC services and vocabulary for the Asset Management domain. | | Automation 2.0 Final | OSLC Automation WG (closed) | Defines the OSLC services and vocabulary for the domain that supports automation of sequences of actions on OSLC resources. | | Performance Monitoring 2.0 Final | OSLC Performance Monitoring WG (closed) | Defines the OSLC services and vocabulary for the Performance Monitoring domain. | Working Drafts See https://github.com/oslc-op/oslc-specs#oslc-open-project-specifications for a list of actively edited drafts. Obsolete Publications | Title | Publisher | Description | |:-------:|:--------------------:|-------------| | Query 3.0 CSPRD 01 | OSLC Core TC (closed) | Defines a simple, implementation independent selection and projection query capability. | | Change Management 3.0 CS02 | OSLC Domains TC (closed) | Defines the OSLC services and vocabulary for the Change Management domain. | | Core 3.0 CSPRD 03 | OSLC Core TC (closed) | Latest published draft of the OSLC 3 specification. | | Core 3.0 CSPRD 02 | OSLC Core TC (closed) | A collection of specifications that defines the basic patterns, protocols and capabilities of OSLC clients and servers. | | Core 3.0 CS 01 | OSLC Core TC (closed) | A collection of specifications that defines the basic patterns, protocols and capabilities of OSLC clients and servers. | | Core 3.0 CSD 01 | OSLC Core TC (closed) | A collection of specifications that defines the basic patterns, protocols and capabilities of OSLC clients and servers. | | Core 3.0 CSPRD 01 | OSLC Core TC (closed) | A collection of specifications that defines the basic patterns, protocols and capabilities of OSLC clients and servers. | | Architecture Management 2.1 CSPRD01 | OSLC Domains TC (closed) | Defines the OSLC services and vocabulary for the Architecture Management domain. | | Change Management 3.0 CS01 | OSLC Domains TC (closed) | Defines the OSLC services and vocabulary for the Change Management domain. | | Change Management 3.0 CSPRD01 | OSLC Domains TC (closed) | Defines the OSLC services and vocabulary for the Change Management domain. | | Configuration Management 1.0 WD | OSLC Core TC (closed) | OSLC Configuration Management defines an RDF vocabulary and a set of REST APIs for managing versions and configurations of linked data resources from multiple domains. | | Requirements Management 2.1 CSPRD01 | OSLC Domains TC (closed) | Defines the OSLC services and vocabulary for the Requirements Management domain. | | Requirements Management 2.1 CS01 | OSLC Domains TC (closed) | Defines the OSLC services and vocabulary for the Requirements Management domain. | There are some additional OSLC documents that are currently inactive but are candidates for migration and could be sources of future specifications: Reconciliation Estimation and Measurement Actions 2.0 Obsolete or abandoned specifications: Reporting Product Definition Anyone interested in contributing to these specifications should join the applicable TC and propose additional work to add to the TC charter.

Open Services for Lifecycle Collaboration Core Specification Version 2.0 **WARNING! This page is a browser-friendly version of the [Core 2.0 specification archived on OASIS](https://www.oasis-open.org/apps/org/workgroup/oslc-core/download.php/61054/Oslc%20Core%202.0%20Final.pdf).** Authors Dave Johnson, Steve Speicher Contributors The OSLC Core Specification Workgroup License This work is licensed under a [Creative Commons Attribution License](http://creativecommons.org/licenses/by/3.0/us/). Notation and Conventions The key words "MUST", "MUST NOT", "REQUIRED, SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this document are to be interpreted as described in RFC-2119. This document is a mixture of normative and informative text. See the [the glossary](#TheGlossary) below for definitions of these terms. ------------------------------------------------------------------------ Overview (this section is informative) The Open Services for Lifecycle Collaboration (OSLC) initiative is creating a family of web services specifications for products, services and other tools that support all phases of the software and product lifecycle. The purpose of these specifications is to enable integration between products that support Application Life-cycle Management (ALM) and Product Life-cycle Management (PLM). Each part of the lifecycle or domain has its own group and specification, for example there are Change Management, Quality Management, Estimation & Measurement and more. Each of the domain specifications are built upon this core specification. This OSLC Core Specification sets out the common features that every OSLC Service can be expected to support using terminology from the World Wide Web Consortium (W3C). New terminology that we introduce can be found in the glossary section below. This specification is mostly about OSLC Services, it specifies what OSLC Services MUST, SHOULD and MAY do. It also contains some required behaviors for OSLC clients and rules for OSLC domain specifications that extend this specification. OSLC Services are accessible via a Service Provider Resource that describes the Services offered. Each Service can provide Creation Factories for resource creation, Query Capabilities for resource query and Delegated UI Dialogs to enable clients to create and select resources via a web UI. Query Capabilities and Creation Factories may offer Resource Shapes that describe the properties of resources managed by the service. This is illustrated in the diagram below. See the section below on Service Provider Resources for further discussion of these concepts. Figure \#1: OSLC Core Specification concepts and relationships <img alt="Diagram of OSLC concepts" src="/img/specifications/core-2.0/oslc-core-overview.png"/ This specification establishes terminology and rules for defining resources in terms of the property names and value-types that are allowed and required. OSLC domain specifications are expected to use these rules and terminologies to describe their resources. See the OSLC Defined Resources section for more on this topic. This specification also sets out rules for creating resource representations in RDF/XML, JSON, Atom and Turtle formats. OSLC domain specifications are expected to refer to these rules when specifying how their resources are to be represented. See the OSLC Defined Resource Representations section for the representation rules and examples of each format. \#AboutTheVersionNumber About the version number. We use the version number "2.0" even though there has never been an OSLC Core Version 1.0 specification. We do this because this OSLC Core specification was written after a series of version 1.0 domain specifications were finalized by OSLC workgroups. The version 2.0 domain specifications will all be based on this Core specification and to avoid confusion this specification will also be known as Version 2.0. About RDF. The resource and property-based data model used in OSLC resources is based on the Resource Description Framework (RDF) and OSLC requires RDF representations, but OSLC uses a small number of RDF concepts and does not require implementers to provide an RDF triple-store or a SPARQL query-engine. Design considerations --------------------- The core philosophies of OSLC are to build on the powerful and scalable architecture of the World Wide Web and to do the simplest possible things that will work. Build on the WWW. OSLC builds on the architecture of the WWW and follows the REST architectural pattern. This means that OSLC Services provide a uniform HTTP interface, OSLC URIs are stable and opaque and, in simple terms, OSLC works like the web. Keep things simple. Doing the simplest things that will possibly work means a couple of different things in regard to OSLC. It means starting with simple and existing concepts. For example, we model everything as resources with property values and do not stray from that model. Keeping things simple also means building on established and well-known specifications, but also carefully limiting the number of other specifications that we reference. This simplicity is intended to enable loose coupling and to make life easier for everybody: OSLC domain work groups, OSLC Service implementers and OSLC client developers. Accommodate different schemas. Because of the breadth of the OSLC domains, spanning lifecycle and platforms, OSLC has to work for systems with very different data schemas or no schemas at all. Flexibility is needed, but some OSLC Services must be able to offer information about resource properties so that clients can learn which are allowed and required for resource creation, query and reporting. Accommodate different representations. Different client platforms might require or at least prefer different representations. For example, in the browser a JSON or Atom format representation might work best. OSLC Services will all support RDF/XML and may support other formats including JSON, Atom and Turtle. Align with the W3C Linked Data initiative. Instead of defining a new data model, OSLC’s resource and property-value approach is based on industry standard Resource Description Framework (RDF) data model. This model allows OSLC to keep things simple, build on the WWW and accommodate different schemas. Glossary of terms ----------------- This is a guide to some of the terminology used in this document. The following definitions are standard W3C concepts. OSLC uses these concepts without modification – their definitions are summarized here for the convenience of the reader. See http://www.w3c.org. Resource: A network data object or service that can be identified by a URI. Resources may be available in multiple representations (e.g. multiple languages, data formats, size, resolutions) or vary in other ways. (reference: HTTP) !-- -- Representation: An HTTP payload entity, included in an HTTP response, that is subject to content negotiation. There may exist multiple representations. associated with a particular HTTP response status. (reference: HTTP) !-- -- URI: Uniform Resource Identifiers are simply formatted strings which identify--via name, location, or any other characteristic -- a resource (reference: URI Syntax) Here are the OSLC specific terms used in this specification. (these definitions are normative) OSLC Domain: an OSLC Domain is one ALM or PLM topic area such as Change Management, Requirements management or Automation. Each OSLC Domain will have its own OSLC specification that complies with this Core specification. !-- -- OSLC Service: a set of capabilities that enable a web client to create, retrieve, update and delete resources managed by an ALM or PLM product or online service offering and associated with one OSLC Domain. !-- -- OSLC Service Provider: a product or online service offering that provides an implementation of one or more OSLC Services, which may themselves implement different OSLC Domain specifications. !-- -- OSLC Resource: a resource that is managed by an OSLC Service, may have properties and may link to other resources including those provided by other OSLC Services. !-- -- OSLC Defined Resource: a resource that is defined by an OSLC specification, see OSLC Defined Resources below. !-- -- OSLC Defined Properties: resource properties that are defined by an OSLC specification, defined by an OSLC Resource Shape or both. !-- -- OSLC Resource Shape: defines the set of OSLC Properties expected in a resource for specific operations (i.e. creation, update or query) for each their value types, allowed values, cardinality and optionality. Examples of such operations include OSLC Creation Resource and Query Resource. Other examples might include applications that display data in tables. !-- -- OSLC Creation Factory. A creation factory provides a URI used to create new resources via HTTP POST and may also provide Resource Shapes that describe the types of resources that may be created. !-- -- OSLC Query Capability: A query capability provides a base URI for forming query resource URIs and, optionally, Resource Shapes that describe the property values that may be used in query expressions and returned in query results. !-- -- OSLC Response Info Resource: An OSLC Defined Resource that provides information about a paged resource representation, e.g. the next page in a multi-page query result representation. Here are some industry terms that we use in this specification: Application Lifecycle Management (ALM): ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management (http://en.wikipedia.org/wiki/Applicationlifecyclemanagement). Product Lifecycle Management (PLM): In industry, product lifecycle management (PLM) is the process of managing the entire lifecycle of a product from its conception, through design and manufacture, to service and disposal (from http://en.wikipedia.org/wiki/Productlifecyclemanagement). And finally, we use the following two terms to describe portions of the OSLC Core specification: Normative. Normative sections of this document set forth requirements that must be met to establish conformance with the OSLC Core specification; or providing recommendations or optional courses of action. This is done using use words from RFC-2119 (e.g. MUST, SHOULD, MAY, etc.). For recommended or optional features, conformance is not dependent on the fact of implementation, but, if implemented, that implementation is as prescribed in this specification. Contrast with informative. !-- -- Informative. Informative text provides background or explanation. Contrast with Normative. It should be clear which sentences and paragraphs are informative from the context and the absence of RFC-2119 keywords. Sections that are purely informative will be marked as informative. Informative text that might be mistaken for normative will also be marked. ------------------------------------------------------------------------ OSLC Defined Resources An OSLC Resource is a resource managed by an OSLC Service. An OSLC Resource is typically something like a Change Request, a Requirement or some other ALM or PLM artifact or record, but an OSLC Resource could also be a video or a presentation file. The resource’s storage medium is unconstrained by OSLC, e.g. it could be stored in a relational database, a flat-file on disk, a source code control system, or in any other way. An OSLC Service can manage any type of resource; OSLC specifications only constrain an OSLC Service’s behavior with respect to resource types it manages that are defined by OSLC specifications (OSLC Defined Resources). OSLC Defined Resources may be specified in any OSLC specification, including this document. Resources are defined by the properties that are allowed and required in the resource. OSLC Defined Resources ---------------------- OSLC uses a simple model of resources with property values intended to be consistent with the Resource Description Framework (RDF) data model (reference: RDF Concepts). OSLC also builds upon the Extensible Markup Language (XML) namespace mechanism (reference: XML Namespaces). When specifying a resource or a property, OSLC Specifications define its type as a URI which can be decomposed into a namespace URI and a name. We abbreviate type URIs as Prefixed Names (reference: Prefixed Names), which are represented in XML as QNames. The namespace used for resources defined in this specification is defined as follows: Namespace URI: http://open-services.net/ns/core# Default Prefix: oslc When defining an OSLC Resource type, OSLC Specifications MUST provide the following information: Name (String): name of the resource which MUST be valid as the Local Name part of a QName (reference: XML Namespaces). URI (URI): The URI of the resource definition. Per the rules of Prefixed Names, this URI is formed by appending the Name to the end of the Namespace URI in the specification that defines the resource. For example, the resource named Service (defined below) gets the Type URI of http://open-services.net/ns/core#Service. Once a resource type is defined, its allowed and required properties can be defined. Regardless of any property definitions, providers and clients MAY impose implementation-specific limits on resources they accept. For example, they are not required to accept/create/store resources whose RDF triples contain objects with arbitrarily large literal values. Defining OSLC Properties OSLC Specifications MAY provide a list of properties allowed and/or required for a particular domain and operation on an OSLC Defined Resource; if no operation is specified, then the list &lt;br /&gt;applies to all operations governed by that specification. Specifications that provide a list of properties and constraints on them SHOULD provide the following information for each property that they define. Name: name of the property which MUST be valid as the Local Name part of a QName (reference: XML Namespaces). URI: The URI that identifies the property. The URI is formed by appending the Name to the end of the Namespace URI associated with the property. For example, the resource named oslc:ServiceProviderCatalog (defined below in the Service Providers Section) defines a property named domain with the URI of http://open-services.net/ns/coredomain Description: Description of the property. Occurs: value MUST be one of: [ http://open-services.net/ns/core#Exactly-one ](http://open-services.net/ns/core#Exactly-one) [ http://open-services.net/ns/core#Zero-or-one ](http://open-services.net/ns/core#Zero-or-one) [ http://open-services.net/ns/core#Zero-or-many ](http://open-services.net/ns/core#Zero-or-many) [ http://open-services.net/ns/core#One-or-many ](http://open-services.net/ns/core#One-or-many) Value-types: A property MAY allow multiple value-types and a value MUST satisfy one or more of them. Each value-type MUST be a URI that corresponds to one of the following: Literal value-types: Boolean: a boolean type as specified by XSD Boolean ( http://www.w3.org/2001/XMLSchema#boolean, reference: XSD Datatypes). DateTime: a Date and Time type as specified by XSD dateTime ( http://www.w3.org/2001/XMLSchema#dateTime, reference: XSD Datatypes). Decimal: a decimal number type as specified by XSD Decimal ( http://www.w3.org/2001/XMLSchema#decimal, reference: XSD Datatypes). Double: a double floating-point number type as specified by XSD Double ( http://www.w3.org/2001/XMLSchema#double, reference: XSD Datatypes). Float: a floating-point number type as specified by XSD Float ( http://www.w3.org/2001/XMLSchema#float, reference: XSD Datatypes). Integer: an integer number type as specified by XSD Integer ( http://www.w3.org/2001/XMLSchema#integer, reference: XSD Datatypes). String: a string type as specified by XSD String ( http://www.w3.org/2001/XMLSchema#string, reference: XSD Datatypes). XMLLiteral: a Literal XML value ( [ http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral ](http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral)). Resource value-types: Resource: value is a resource at a specified URI (i.e. a URI Reference) ( [ http://open-services.net/ns/core#Resource ](http://open-services.net/ns/core#Resource) ). Local Resource: value is an resource available only inside the resource being defined (i.e. a Blank Node) ( [ http://open-services.net/ns/core#LocalResource ](http://open-services.net/ns/core#LocalResource) ). AnyResource: value is either a Resource or **Local Resource** as defined above ( [ http://open-services.net/ns/core#AnyResource ](http://open-services.net/ns/core#AnyResource) ). Representation: for properties with a resource value-type, OSLC specifications should also specify how the resource will be represented. The options are [ http://open-services.net/ns/core#Reference ](http://open-services.net/ns/core#Reference) , [ http://open-services.net/ns/core#Inline ](http://open-services.net/ns/core#Inline) or [ http://open-services.net/ns/core#Either ](http://open-services.net/ns/core#Either). Range: for properties with a resource value-type, OSLC specifications should follow the best practices in [Appendix C Guidance on Links and Relationships](OslcCoreSpecAppendixLinks), which usually results in no restrictions on the range of possible resource types allowed, and an informative recommendation in the property description suggesting which resource types implementations should expect to find. This can be specified as a list of one or more resource types specified by URI reference; when no restrictions are required, use the string any. Clients SHOULD allow any resource type as the target of a link. Providers are strongly RECOMMENDED to behave reasonably for all resource types listed in a property’s description, and to degrade gracefully for others, as defined in Appendix C. Read-only: Boolean indication of whether or not clients are permitted to replace the property’s value after the resource has been created. Allowable values are: true, false, unspecified. True indicates that providers SHOULD NOT permit clients to change the property’s value after the resource has been created. False indicates that providers MAY permit clients to change the property’s value after the resource has been created. Unspecified indicates that the domain specification leaves the choice up to provider implementations. In the rest of this document we will define OSLC resources as described above. The below section titled OSLC Defined Resource Representations defines how OSLC resources are to be represented in RDF/XML, JSON and other formats. OSLC Services that wish to provide the information above in a machine-readable format MAY use OSLC Resource Shapes, see [Appendix A: Common Properties and Resources](OSLC Core Spec Appendix A) for more information. NOTE: we do not mention Internationalization of strings here because we expect standard HTTP content-negotiation and representation (e.g. xml:lang) mechanisms to be used for such. Unknown properties and content ------------------------------ For OSLC Defined Resources, clients SHOULD assume that an OSLC Service will discard unknown property values. An OSLC Service MAY discard property values that are not part of the resource definition or Resource Shape known by the server. If a client needs verification that the requested update was accepted it SHOULD note the HTTP response header ETag value returned with the HTTP PUT, Immediately HTTP GET the resource back and compare the HTTP response header ETag value and contents with its expectations. The Service SHOULD NOT return an error code for unrecognized content. A Service MUST return an error code if recognized content is invalid. The rule is different for clients. When doing an update, OSLC clients MUST preserve any unknown property-values and other content in OSLC Defined Resources. See following section on Resource Update. Resource Operations ------------------- OSLC Services use HTTP for create, retrieve, update and delete operations on resources. OSLC Services MUST comply with the HTTP specification (reference: HTTP). Resource Creation (this section is informative) To create an OSLC Defined Resource, or any type of resource managed by an OSLC Service, an OSLC client HTTP POSTs a representation of that resource to a Creation URI. See the section on [Creation Factories](Creation_Factories) for more information. Resource Removal (this section is informative) To delete an OSLC Defined Resource, or any type of resource managed by a service, a client performs an HTTP DELETE on the resource's URI. Resource Update To update an OSLC Resource in an OSLC Service, a client fetches a representation of that resource via HTTP GET. The client updates the representation and then uses HTTP PUT to send the new representation to the resource's URI. Recall from [OSLC Defined Resources: Unknown properties and content](#Unknownpropertiesand_content) above that, when doing an update, OSLC clients must preserve any unknown property-values and other content in OSLC Defined Resources. Because the update process involves first getting a resource, modifying it and then later putting it back to the server there is the possibility of a conflict, e.g. some other client may have have updated the resource since the GET. To mitigate this problem, OSLC Services SHOULD use the HTTP If-Match header: If the HTTP If-Match header is missing OSLC Services SHOULD return HTTP Bad Request (400) status code to indicate that the header is required. If the HTTP If-Match header is present OSLC Services MUST behave as described in the HTTP specification, returning an HTTP Precondition Failed (412) error to indicate that the header does not match. If the HTTP If-Match header is present and it matches, but there is some other problem or conflict with the update then OSLC Services MAY return an HTTP Conflict (409) to indicate that problem. Note that section Error Responses below, we specify that when an error occurs and useful information can be provided to clients OSLC Services SHOULD return error information in the body of the response. Resource Paging --------------- OSLC Services MAY support a technique called Resource Paging to enable clients to retrieve resources one page at a time. When a client requests a resource, the client can expect that the entire resource will be returned in the response, with all property values. This can be problematic because, in some cases, resources may be so large that a client might not want to retrieve the entire resource in one HTTP response. One solution for response size-sensitive Clients is to check size before loading. Clients that do not wish to load large resources can use the HTTP HEAD method to determine the size of a resource and, according to the rules of HTTP the server's SHOULD include an HTTP Content-Length header that indicates the size of the resource as the "decimal number of OCTETs." If the size is too large, a client can choose not to retrieve the resource. Another solution is to use Resource Paging; here's how it works. To get a paged version of a resource, a client adds the "keyvalue" pair =oslc.paging=true to the query component of the resource URI and the server MAY respond by returning a representation that contains partial information about the resource; only a subset of the resource's property values. When a page is returned and it is NOT the last page in the sequence, then it SHOULD include an oslc:ResponseInfo (defined below), which that contains a resource-valued property oslc:nextPage that links to a resource that represents the next page of property-values. Because paging is unstable (see below), by the time a client follows an oslc:nextPage link there may no longe be a next page, in this case the server MAY respond with an HTTP 404 Page Not Found status code. A client can also request paging by adding the "keyvalue" pair =oslc.pageSize to the query string component of the resource URI. By adding this, a client requests that the server respond with a specific number of property values. For example, oslc.pageSize=20 indicates to the server that the client would like 20 values per page. OSLC Services MAY ignore oslc.pageSize. When Resource Paging is used, the values of a multi-valued property MAY be split across resource pages. Each property value MUST be represented in its entirety and not split across multiple partial resource pages. Provider response-size limitations When a client requests a resource that an OSLC Service considers to be too large to return in one response and the client has not indicated that it desires paging (via oslc.paging or oslc.pageSize), the OSLC Service MAY redirect the client to a representation that contains partial information about the resource, as follows: The OSLC Service receives an HTTP GET request for a resource that exceeds size limits and URL does not include oslc.paging or an oslc.pageSize key/value pair. The OSLC Service returns an HTTP Status 302 redirect a URL that does include the key/values for paging, as follows: If the client did not indicate paging, the new redirect URL MUST include the oslc.paging pair. If the client indicated a page size, then the redirect URL MUST include the oslc.pageSize pair with a size value that is acceptable to the service. The client MAY choose to follow the redirect and receive a representation that contains partial information about the resource. On receiving a resource representation, OSLC Clients SHOULD check for the presence of an oslc:nextPage value to determine if the representation contains partial information about the resource. If the value is present, then paging is in effect and the representation contains partial information about the resource. Unstable Paging Because HTTP is a stateless protocol and OSLC Services manage resources that can change frequently, OSLC clients SHOULD assume that resources can change as they page through them using the oslc:nextPage mechanism. Stable Paging Some OSLC Services might wish to guarantee stable paging, meaning that the chain of oslc:nextPage links in a resource represent a snapshot in time and will not change as the client pages through them. OSLC specifications that require stable paging SHOULD state this requirement and specify to which resources it applies. Note that because stable paging implementations are based on server-side state, it is possible that such state will expire. Implementations MAY use the HTTP response code 410 (Expired) to indicate to clients that the next-page link they requested has expired. Response Information Resource representations returned via Resource Paging MUST include a resource of type oslc:ResponseInfo, as defined in this section. A response info resource representation describes information about a paged HTTP response body in which it appears. Name: ResponseInfo URI: http://open-services.net/ns/core#ResponseInfo | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:----------------------|:------------|:----------|:------------|:----------------|:------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dcterms:title | zero-or-one | True | XML Literal | n/a | n/a | Title of the response | | dcterms:description | zero-or-one | True | XML Literal | n/a | n/a | Description of response | | oslc:nextPage | zero-or-one | True | Resource | Reference | any | Link to next page of response | | oslc:totalCount | zero-or-one | True | Integer | n/a | n/a | This optional property indicates the total number of results across all pages, its value should be non-negative. In the context of a query resource, this value SHOULD be the total number of results, i.e. the number of resources that match the query. In the context of other resources, the value SHOULD be the total number of property values (i.e. RDF triples) of the resource. Unless Stable Paging is in effect, the total count MAY vary as a client retrieves subsequent pages. | The subject resource URI of the oslc:ResponseInfo resource representation will be the HTTP request URI, or URI from subsequent redirects. The response representation may also include properties from subject resources different from the one identified by the request URI. Here's an example, using the OSLC Core RDF/XML representation guidance, that illustrates how the oslc:ResponseInfo resource representation is included in addition to the blog entry resource representation. **Example: Resource Paging, partial response with response info resource representation** Example URI: http://example.com/blogs/entry/1?oslc.paging=true&pageno=2 &lt;verbatim&gt; &lt;rdf:RDF xmlns:oslc\_blog="http://open-services.net/ns/bogus/blogs\#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns\#" xmlns:foaf="http://http://xmlns.com/foaf/0.1/" xmlns:dcterms="http://purl.org/dc/terms/"&gt; &lt;oslc\_blog:Entry rdf:about="http://example.com/blogs/entry/1"&gt; &lt;/oslc\_blog:Entry&gt; &lt;oslc:ResponseInfo rdf:about="http://example.com/blogs/entry/1?oslc.paging=true&pageno=2"&gt; &lt;oslc:nextPage rdf:resource="http://example.com/blogs/entry/1?oslc.paging=true&pageno=3" /&gt; &lt;/oslc:ResponseInfo&gt; &lt;/rdf:RDF&gt; &lt;/verbatim&gt; Refer to the OSLC Defined Resource Representation guidance for an explanation of how the response info resource may be represented in RDF/XML. Selective Property Values ------------------------- OSLC Services MAY support a technique called Selective Properties to enable clients to retrieve only selected property values. By adding the keyvalue pair =oslc.properties, specified below, to a resource URI, a client can request a new resource with a subset of the original resource's values. Here's how the selective properties values oslc.properties and oslc.prefix work. oslc.properties The oslc.properties key=value pair lets you specify the set of properties to be included in the response. Both immediate and nested properties may be specified. A nested property is a property that belongs to the resource referenced by another property. Nested properties are enclosed in brace brackets, and this nesting may be done recursively, i.e. a nested property may contain other nested properties. For example, suppose we have a bug report resource at the following URL: http://example.com/bugs/4242 Suppose this bug resource has properties such as dcterms:title, dcterms:description, and dcterms:creator, and that dcterms:creator refers to a person resource that has properties such as foaf:givenName and foaf:familyName. Suppose you want a representation of the bug report that includes its dcterms:title and the foaf:givenName and foaf:familyName of the person refered to by its dcterms:creator. The following URL illustrates the use of the oslc.properties query value to include those properties: http://example.com/bugs/4242?oslc.properties=dcterms:title,dcterms:creator{foaf:givenName,foaf:familyName} Syntax The oslc.properties pair is defined by the oslc_properties term in the following BNF grammar: oslc_properties ::= "oslc.properties=" properties properties ::= property ("," property)* property ::= identifier | wildcard | nested_prop nested_prop ::= (identifier | wildcard) "{" properties "}" wildcard ::= "*" identifier ::= PrefixedName PrefixedName ::= /* see "SPARQL Query Lanaguage for RDF", http://www.w3.org/TR/rdf-sparql-query/rPrefixedName */ oslc.prefix In our examples of oslc.properties, property names include a URI prefix, i.e. dcterms: or foaf:. An OSLC Service SHOULD predefine URI prefixes for its properties. Here we assume that OSLC has predefined the Dublin Core ( dcterms:) and Friend of a Friend ( foaf:) prefixes. However, OSLC resources SHOULD also be open to new content, which means that new properties may not have predefined URI prefixes. We therefore need a way to define new URI prefixes in resource requests. The oslc.prefix value lets you specify URI prefixes used in property names. For example, suppose the foaf: prefix was not predefined. The following URL illustrates the use of the oslc.prefix value to define it: http://example.com/bugs/4242?oslc.prefix=foaf=http://xmlns.com/foaf/0.1/&oslc.properties=foaf:lastName,... Syntax The syntax of the oslc.prefix is defined by the oslc_prefix term in the following BNF grammar: oslcprefix ::= "oslc.prefix=" prefixdefs prefixdefs ::= prefixdef ("," prefix_def)* prefixdef ::= prefix "=" uriref_esc prefix ::= PN_PREFIX PNPREFIX ::= /* see "SPARQL Query Lanaguage for RDF", http://www.w3.org/TR/rdf-sparql-query/rPNPREFIX */ urirefesc ::= /* an angle bracket-delimited URI reference in which and \ are \-escaped. */ Common Properties ----------------- OSLC domains specifications are strongly encouraged to use the common properties approved by the OSLC Core Workgroup (See OSLC Core Spec Appendix A) rather than defining new properties. ------------------------------------------------------------------------ Service Provider Resources OSLC Services are accessible via a Service Provider Resource that describes each service, which domain specifications the service implements as well as the creation, query and delegated UI capabilities of each service. Additionally, a provider may offer a Service Provider Catalog that lists related Service Providers. Conceptual Model ---------------- The conceptual model of Service Provider Catalog and Service Provider resources is simple. They are both resources with property values. The values allowed and required in each type of resource are defined below. The diagram below illustrates the Service Provider Catalog and Service Provider concepts and relationships. As you can see there are two Resources defined: Service Provider Catalog and Service Provider. There are also a set of Local In-Line Resources that are used inside the Resources to define namespaces, OAuth configurations, contributors as well as services and their capabilities. Figure \#2: Service Provider concepts and relationships <img alt="Service Provider concepts and relationships" src="http://open-services.net/pub/Main/OslcCoreSpecification/oslc-core-providers.graffle_Canvas1.jpg" /&gt; Next, we will formally define the Service Provider Catalog and Service Provider resources. Resource: Service Provider Catalog An OSLC implementation that offers one or more Service Provider resources (see below), MAY also provide Service Provider Catalog to enable OSLC clients to find Service Providers offered. These catalogs may contain other nested catalogs as well as service providers. Name: ServiceProviderCatalog URI: http://open-services.net/ns/coreServiceProviderCatalog | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:------------------------------|:-------------|:----------|:---------------|:----------------|:----------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------| | dcterms:title | zero-or-one | True | XMLLiteral | n/a | n/a | Title of the service provider catalog | | dcterms:description | zero-or-one | True | XMLLiteral | n/a | n/a | Description of the service provider catalog | | dcterms:publisher | zero-or-one | True | Local Resource | Inline | oslc:Publisher | Describes the software product that provides the implementation. | | oslc:domain | zero-or-many | True | Resource | Reference | n/a | Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used. | | oslc:serviceProvider | zero-or-many | True | Resource | Either | oslc:ServiceProvider | A service offered by the service provider. | | oslc:serviceProviderCatalog | zero-or-many | True | Resource | Either | oslc:ServiceProviderCatalog | Additional service provider catalog. | | oslc:oauthConfiguration | zero-or-many | True | Local Resource | Inline | oslc:OAuthConfiguration | Defines the three OAuth URIs required for a client to act as an OAuth consumer. | Resource: Service Provider A Service Provider describes a set of services offered by an OSLC implementation. Name: ServiceProvider URI: http://open-services.net/ns/coreServiceProvider | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:--------------------------|:-------------|:----------|:---------------|:----------------|:-------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------| | dcterms:title | zero-or-one | True | XMLLiteral | n/a | n/a | Title of the service provider | | dcterms:description | zero-or-one | True | XMLLiteral | n/a | n/a | Description of the service provider | | dcterms:publisher | zero-or-one | True | Local Resource | Inline | oslc:Publisher | Describes the software product that provides the implementation. | | oslc:service | one-or-many | True | Local Resource | Inline | oslc:Service | Describes a service offered by the service provider. | | oslc:details | zero-or-many | True | Resource | Reference | any | A URL that may be used to retrieve a web page to determine additional details about the service provider. | | oslc:prefixDefinition | zero-or-many | True | Local Resource | Inline | oslc:PrefixDefinition | Defines a namespace prefix for use in JSON representations and in forming OSLC Query Syntax strings. | | oslc:oauthConfiguration | zero-or-one | True | Local Resource | Inline | oslc:OAuthConfiguration | Defines the three OAuth URIs required for a client to act as an OAuth consumer. | Resource: Service A Service describes the specific services offered by an implementation of an OSLC specification. Name: Service URI: http://open-services.net/ns/coreService | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:-----------------------|:-------------|:----------|:---------------|:----------------|:-------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | oslc:domain | exactly-one | True | Resource | Reference | n/a | Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used. | | oslc:creationFactory | zero-or-many | True | Local Resource | n/a | oslc:CreationFactory | Enables clients to create new resources | | oslc:queryCapability | zero-or-many | True | Local Resource | n/a | oslc:QueryCapability | Enables clients query across a collection of resources | | oslc:selectionDialog | zero-or-many | True | Local Resource | n/a | oslc:Dialog | Enables clients to select a resource via UI | | oslc:creationDialog | zero-or-many | True | Local Resource | n/a | oslc:Dialog | Enables clients to create a resource via UI | | oslc:usage | zero-or-many | True | Resource | Resource | n/a | An identifier URI for the domain specified usage of this service. If a service provider has multiple services, it may designate the primary or default one that should be used with a property value of http://open-services.net/ns/core#default | Resource: Creation Factory A Creation Factory describes a creation factory, capable of creating new resources via HTTP POST. Name: CreationFactory URI: http://open-services.net/ns/coreCreationFactory | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:---------------------|:-------------|:----------|:-----------|:----------------|:----------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dcterms:title | exactly-one | True | XMLLiteral | n/a | n/a | Title string that could be used for display | | oslc:label | zero-or-one | True | String | n/a | n/a | Very short label for use in menu items | | oslc:creation | exactly-one | True | Resource | Reference | n/a | To create a new resource via the factory, post it to this URI | | oslc:resourceShape | zero-or-many | True | Resource | Reference | oslc:ResourceShape | A Creation Factory MAY provide Resource Shapes that describe shapes of resources that may be created. | | oslc:resourceType | zero-or-many | True | Resource | Reference | n/a | The expected resource type URI of the resource that will be created using this creation factory. These would be the URIs found in the result resource's rdf:type property. | | oslc:usage | zero-or-many | True | Resource | Resource | n/a | An identifier URI for the domain specified usage of this creation factory. If a service provides multiple creation factories, it may designate the primary or default one that should be used with a property value of http://open-services.net/ns/core#default | Resource: Query Capability A Query Capability describes a query capability, capable of querying resources via HTTP GET or POST. Name: QueryCapability URI: http://open-services.net/ns/coreQueryCapability | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:---------------------|:-------------|:----------|:-----------|:----------------|:------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dcterms:title | exactly-one | True | XMLLiteral | n/a | n/a | Title string that could be used for display | | oslc:label | zero-or-one | True | String | n/a | n/a | Very short label for use in menu items | | oslc:queryBase | exactly-one | True | Resource | Reference | n/a | The base URI to use for queries. Queries are invoked via HTTP GET on a query URI formed by appending a key=value pair to the base URI, as described in Query Capabilities section. | | oslc:resourceShape | zero-or-one | True | Resource | Reference | n/a | The Query Capability SHOULD provide a Resource Shape that describes the query base URI. | | oslc:resourceType | zero-or-many | True | Resource | Reference | n/a | The expected resource type URI that will be returned with this query capability. These would be the URIs found in the result resource's rdf:type property. | | oslc:usage | zero-or-many | True | Resource | Reference | n/a | An identifier URI for the domain specified usage of this query capability. If a service provides multiple query capabilities, it may designate the primary or default one that should be used with a property value of http://open-services/ns/core#default | Resource: Dialog A Dialog describes a delegated user interface (UI) which can be used to allow a user to interactively create a new resource or pick a resource. Name: Dialog URI: http://open-services.net/ns/coreDialog | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:--------------------|:-------------|:----------|:-----------|:----------------|:------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dcterms:title | exactly-one | True | XMLLiteral | n/a | n/a | Title string that could be used for display | | oslc:label | zero-or-one | True | String | n/a | n/a | Very short label for use in menu items | | oslc:dialog | exactly-one | True | Resource | Reference | n/a | The URI of the dialog | | oslc:hintWidth | zero-or-one | True | String | n/a | n/a | Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size). | | oslc:hintHeight | zero-or-one | True | String | n/a | n/a | Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size). | | oslc:resourceType | zero-or-many | True | Resource | Reference | n/a | The expected resource type URI for the resources that will be returned when using this dialog. These would be the URIs found in the result resource's rdf:type property. | | oslc:usage | zero-or-many | True | Resource | Reference | n/a | An identifier URI for the domain specified usage of this dialog. If a service provides multiple selection or creation dialogs, it may designate the primary or default one that should be used with a property value of http://open-services/ns/core#default | Resource: Publisher A Publisher identifies and describes the software product that provides the OSLC implementation. Name: Publisher URI: http://open-services.net/ns/corePublisher | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:---------------------|:------------|:------------|:-----------|:----------------|:------|:----------------------------------------------------------------------------------------------------------------| | dcterms:title | exactly-one | True | XMLLiteral | n/a | n/a | Title string that could be used for display | | oslc:label | zero-or-one | True | String | n/a | n/a | Very short label for use in menu items | | dcterms:identifier | exactly-one | unspecified | String | n/a | n/a | A URN that uniquely identifies the implementation | | oslc:icon | zero-or-one | True | Resource | reference | n/a | URL to an icon file that represents the provider. This icon should be a favicon format and 16x16 pixels in size | Resource: Prefix Definition Service Providers MUST provide a Prefix Definition for each prefix supported by the service. Each Prefix Definition defines a namespace prefix that clients MAY use in forming OSLC Query Syntax strings. Name: PrefixDefinition URI: http://open-services.net/ns/corePrefixDefinition | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:------------------|:------------|:----------|:-----------|:----------------|:------|:-----------------------------------------------| | oslc:prefix | exactly-one | True | String | n/a | n/a | Namespace prefix to be used for this namespace | | oslc:prefixBase | exactly-one | True | Resource | Reference | n/a | The base URI of the namespace | Resource: OAuth Configuration Service Providers that support OAuth Authentication SHOULD provide a way for clients to automatically discover the three OAuth URIs necessary to act as an OAuth Consumer. Name: OAuthConfiguration URI: http://open-services.net/ns/coreOAuthConfiguration | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:----------------------------|:------------|:----------|:-----------|:----------------|:------|:--------------------------------------| | oslc:oauthRequestTokenURI | exactly-one | True | Resource | Reference | n/a | URI for obtaining OAuth request token | | oslc:authorizationURI | exactly-one | True | Resource | Reference | n/a | URI for obtaining OAuth authorization | | oslc:oauthAccessTokenURI | exactly-one | True | Resource | Reference | n/a | URI for obtaining OAuth access token | The next sections cover the Creation Factory and Query Capability in more detail. ------------------------------------------------------------------------ Creation Factories An OSLC Service can provide one or more creation factory to enable the creation of new resources. A creation factory provides a Creation URI used to create new resources via HTTP POST and may also provide Resource Shapes that describe the types of resources that may be created. To create a new OSLC Resource, an OSLC client POSTs a representation of that resource to a Creation Factory's Creation URI. An HTTP POST of content to a Creation URI SHOULD result in the creation of a new resource or an explanation of why creation did not occur via the appropriate HTTP status code. The response to a successful HTTP POST of content to a Creation URI SHOULD include a HTTP Location header that specifies the URI of the newly created resource. Creating an OSLC Defined Resource --------------------------------- To create an OSLC Defined Resource, an OSLC Client first forms an representation of that resource including the desired and required property values. A client can learn what properties are allowed in a new OSLC Defined Resource via the OSLC specification that defines or, in some cases via a Resource Shape resource. Next the client uses HTTP POST to post that representation to a Creation URI. The response to a successful HTTP POST of a representation to a Creation Resource URI MAY include a representation of the newly created resource. The resource returned MAY contain changes to properties made by the server or new properties added by the server. Query Capabilities An OSLC Service may provide one or more Query Capabilities to enable query of resources. A Query Capability provides a base URI for forming Query Resource URIs and MAY provide Resource Shapes that describe the property values that may be expected in the resources that are queryable via the query capability. Thus, Query Capabilities provide a way to discover the resources managed by an OSLC Service. In a Query Capability, the base URI, as defined by the oslc:queryBase property, is itself a resource managed by the service and it acts as the starting subject resource for the queries based on it. Since the list may contain hundreds of thousands of members, queries are used to filter the list for members that satisfy certain conditions, e.g. the bugs that have high priority and were created this week. Conceptual Model ---------------- To perform a query an OSLC client first creates a URI by starting with a Query Capability's base URI as a base and adding a URI Query String to express the query criteria. The OSLC client then uses HTTP GET to request a Query Resource representation of the query results. The Query Resource representation will contain property values about the query and a collection of resources that match the query criteria. HTTP GET Queries To perform an HTTP GET query, an OSLC client starts with the base URI as defined by the oslc:queryBase property of a Query Capability, and appends to it query parameters in a syntax supported by the service. The resulting URI is the query URI. The OSLC client sends an HTTP GET request to the query URI, optionally specifying the preferred content media type for the query response in the HTTP Accept header. OSLC Services MUST support query responses in RDF/XML format (media type application/rdf+xml) and MAY support other formats. OSLC Services SHOULD support the Query Syntax defined in this specification, but MAY support other syntaxes. Query Syntax ------------ A query URI can be formed by adding a query string to the end of the Query Capability's base URI (or by sending the query string in the request body when using HTTP POST). The syntax used to express the query criteria in that string is specified by each OSLC domain specification. The OSLC Core Spec Query Specification document defines a standard set of OSLC query parameters that other OSLC domain specifications MAY use to query resources. Query Specification errors If there is an error in the specification of the query, whether the query is specified by key=value pairs in the HTTP GET URL or key=value pairs in the body of an HTTP POST, then the provider MUST respond with an error. The error response should be an HTTP 400 Bad Request error and an explanation of the error in the OSLC Error Response format (see Error Responses below). ------------------------------------------------------------------------ Delegated User Interface Dialogs OSLC specifications target specific integration scenarios. In some cases, allowing one product to delegate to a user interface defined in another product is a more effective way to support a use case than an HTTP interface that can only be accessed programmatically. There are two cases where this is especially true: Resource creation: when a user of a web application needs to create a new resource in an OSLC Service Provider. In this case the web application asks the service provider to provide a UI for resource creation and the provider notifies the application when the creation has been completed or canceled by the user. Resource selection: when a user of a web application and needs to pick a resource managed by a OSLC Service Provider. In this case the web application asks the service provider to provide a UI for resource selection and the provider notifies the application when a resource or resources has been selected or if the selection was canceled. To support these two cases, below we define OSLC Delegated User Interface (UI) Dialogs. Delegated UI Dialogs are a technique where one provider can embed a creation or selection UI into another using a combination of an HTML &lt;iframe&gt; and JavaScript code. The diagram below illustrates how delegated UI dialogs work in a scenario where Provider A wants to allow a user to select or create a resource managed by Provider B. Figure \#3: Delegated UI Dialog interactions <img alt="Delegated UI Dialogs" src="/img/specifications/core-2.0/oslc-delegated.png"/ Next, the details of the Delegated UI Dialog protocol. Terminology The following terms are used in discussions of Delegated UI Dialogs: UI Consumer - a web application that is embedding a Delegated UI Dialog from an OSLC Service Provider. This consumer could be a web page, with the Delegated UI Dialog loaded into an iframe or a native application, e.g. an IDE like Eclipse, that is embedding a web browser component. !-- -- UI Provider - an OSLC Service provider that offers one or more Delegated UI Dialogs. These dialogs will be specified in the provider's Service Provider resource. The next sections explain how Delegated UI Dialogs work. Post Message and Window Name protocols -------------------------------------- To support the widest range of web browsers, we define two different protocols for communicating the information about the user's action from the UI Provider and back to the UI Consumer. These are the Post Message and Window Name protocols described below. In both the Post Message and Window Name protocols, the way that a UI Consumer includes a Delegated UI Dialog in an HTML page is to create an iframe and specify the src as the URI of the Delegated UI Dialog to be included. The UI Consumer indicates the protocol to be used by appending one of the two fragment identifiers below to the URI: oslc-core-postMessage-1.0 - Indicates that the Post Message protocol is to be used #oslc-core-windowName-1.0 - Indicates that the Window Name protocol is to be used The JavaScript code example below shows now a UI Provider can determine which protocol is in use: if (window.location.hash == '#oslc-core-windowName-1.0') { // Window Name protocol in use } else if (window.location.hash == '#oslc-core-postMessage-1.0') { // Post Message protocol in use } iframe Creation Considerations Regardless of the protocol in effect, it is recommended that UI Consumers follow the below iframe creation guidelines to provide a more seamless user experience: Embed the iframe within a div element, with height and width set based on the relative length values specified in the Service Resource that declares the Delegated UI Dialog. Set the iframe border size to '0' Set the iframe scrolling to 'auto' Next, the details for each of the two protocols. Post Message Protocol The Post Message protocol relies on the HTML5 function window.postMessage() (reference: HTML5), available in the latest or pending releases of most browsers. UI Consumers must anticipate other, unrelated uses of postMessage(), and should ignore messages not conforming to this protocol. Typically, the embedded page will be loaded in a window inside another window, such as a iframe inside some surrounding webpage. In such cases, postMessage() must be called on that parent window. But in a native application, an outer page is not needed and the embedded page may be shown directly in the browser's "root" window. When the embedded page has no parent window, it must call postMessage() on its own window. Here are the responsibilities of the UI Consumer and UI Provider in Post Message protocol. The UI Consumer's responsibilities 1 Include the Delegated UI Dialog via iframe (i.e setting iframe src to the URI of the Delegated UI Dialog) or via an embedded browser. Append the fragment identifier \oslc-core-postMessage-1.0 to the URL to indicate that Post Message is the desired protocol. 1 Add a 'message' listener to the outer window to receive messages from the Delegated UI Dialog. 1 Listen for window 'message' events, ignoring events from other sources or not prefixed with "oslc-response:" 1 When message from Delegated UI Dialog indicates user completed action, free resources and handle action. The UI Provider's responsibilities 1 Provide Delegated UI Dialog, an HTML page that provides a user interface for resource creation or selection. 1 Allow the user to perform resource creation or selection. 1 Once the user has created, selected or canceled, send notification using postMessage() to the page's parent window, passed in event.data string, that is prefixed with "oslc-response:" See below for the two possible response formats, one for resource selection and one for creation. 1 If the page is not parented, then the message is posted to the page's own window. The page must ignore this message to itself. The below JavaScript code example shows how a UI Provider page would send a response using postMessage() and taking into account the fact that some pages are not parented. function respondWithPostMessage(/string/ response) { (window.parent | window).postMessage("oslc-response:" + response, "*"); } Now, the Window Name protocol. Window Name Protocol The Window Name protocol uses the HTML DOM window.name property to communicate the response (reference: Window Object) from the UI Provider to the UI Consumer. This special property of window maintains its value even as the window navigates to a different origin, but the ifame's window.name can only be read when the accessing window shares the same origin. For this to happen, when the embedded page is finished it must set the window.name and also change the window.location to a page with the same origin as the outer frame. This not only allows the UI Consumer to access the result, but also fires an event telling the UI Consumer when to do so. This return location is passed to the embedded page using the window.name property. Here are the responsibilities of the UI Consumer and UI Provider in Window Name protocol. The UI Consumer's responsibilities 1 Include the Delegated UI Dialog via iframe (i.e setting iframe src to the URI of the Delegated UI Dialog) or via an embedded browser. Append the fragment identifier \oslc-core-windowName-1.0 to the URL to indicate that Window Name is the desired protocol. 1 On the iframe, set the frame's window.name to indicate the Return URL. 1 On the iframe, Listen for 'onload' events 1 When an 'onload' event occures an the frame's location is equal to the Return URL then read the response from the window.name. The following Javascript code illustrates the protocol. The code for the destroyFrame(), handleMessage() and displayFrame() methods are not provided in this example, but should be obvious to a JavaScript developer. The UI Consumer must provide these methods. var pickerURL = ... // URL of Provider's Delegated UI Dialog var returnURL = ... // Consumer's Return URL var frame = document.createElement('iframe'); function windowNameProtocol() { // Step #1: create iframe with fragment to indicate protocol // Step #2: set the iframe's window.name to indicate the Return URL if (ie 0) { frame = document.createElement('iframe name=\'' + returnURL + '\''); } else { frame = document.createElement('iframe'); frame.name = returnURL; } frame.src = pickerURL + '#oslc-core-windowName-1.0'; frame.width = 450; frame.height = 300; displayFrame(frame); // Step #3: listen for onload events on the iframe var ie = window.navigator.userAgent.indexOf("MSIE"); if (ie 0) { frame.attachEvent("onLoad", onFrameLoaded); } else { frame.onload = onFrameLoaded; } } function onFrameLoaded() { try { // May throw an exception if the frame's location is still a different origin // Step #4: when frame's location is equal to the Return URL // then read response and return. if (frame.contentWindow.location == returnURL) { var message = frame.contentWindow.name; destroyFrame(frame); handleMessage(message); } } catch (e) { // ignore: access exception when trying to access window name } } The UI Provider's responsibilities As soon as the embedded page has loaded, perform the following: 1 *Provide Delegated UI Dialog, an HTML page that provides a user interface for resource creation or selection.* 1 *Read the Return URL from the window.name variable* 1 &lt;span style="font-family: Verdana,Arial,Helvetica,sans-serif; font-size: small"&gt;Allow user to perform resource creation or selection.&lt;/span&gt; 1 Once user has created, selected or canceled, communicate the user's response by setting the window.name variable to the response. See below for the two possible response formats, one for resource selection and one for creation. 1 Indicate that user has responded by setting the window.location to the Return URL specified by the UI Consumer. The JavaScript example below shows a UI Provider notifying its UI Consumer after a user has responded. function respondWithWindowName(/string/ response) { // Step 2: read the return URL var returnURL = window.name; // Step #4: send the response via the window.name variable window.name = response; // Step #5: indicate that user has responded window.location = returnURL; } Resource Selection ------------------ Resource Selection can be used when a UI Consumer wants to allow a user to pick a resource that is managed by an OSLC Service. Using either the Post Message or Window Name protocols defined above, the UI Consumer uses an iframe to embed a selection dialog that is provided by the service, then awaits notification that the user has selected a resource. To enable Resource Selection, an OSLC Service MUST provide in its Service Resource a value for the oslc:selectionDialog property. The property value will include a oslc:dialogURI property that indicates the URI of the selection dialog. Regardless of how the response from the UI Provider is conveyed to the UI Consumer, the response SHOULD be formatted as follows: Name: results URI: http://open-services.net/ns/core#results | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:---------------|:------------|:----------|:-----------|:----------------|:------|:---------------------------------------------| | rdf:resource | zero-or-one | True | Resource | Reference | n/a | URI of the resource selected or created | | oslc:label | zero-or-one | True | String | n/a | n/a | Short label describing the resource selected | An empty array indicates that the resource selector has been canceled An example Resource Selection response: { "oslc:results" : [{ "oslc:label": "Bug 123: Server crash", "rdf:resource": "http://example.com/bug123" }, { "oslc:label": "Bug 456: Client hangs on startup", "rdf:resource": "http://example.com/bug456" } ] } Resource Creation ----------------- Resource Creation can be used when a UI Consumer wants to allow a user to create a new resource that is managed by an OSLC Service. Using either the Post Message or Window Name protocols defined above, the UI Consumer uses an iframe to embed a creation dialog that is provided by the service, then awaits notification that the user has created a resource. To enable Resource Creation, an OSLC Service MUST provide in its Service Resource a value for the oslc:creationDialog property. The property value will include a oslc:dialogURI property that indicates the URI of the creation dialog. Regardless of how the response from the UI Provider is conveyed to the UI Consumer, the response SHOULD be formatted as defined by oslc:results Example: { "oslc:results" : [ { "oslc:label": "Bug 123: Server crash", "rdf:resource": "http://example.com/bug123" }, { "oslc:label": "Bug 456: Client hangs on startup", "rdf:resource": "http://example.com/bug456" } ] } Prefilling Creation Dialogs Service providers MAY support receiving a POST request whose content body is a resource representation to the Creation Dialog URI to retrieve a URI that represents the embedded page to be used. Service providers MUST respond with a response status of 201 (Created) with the response header Location whose value is the URI to request the newly created form. After some elapsed time, service providers MAY respond with a 404 (Not Found), 410 (Gone) or 3xx (Redirect) to an HTTP GET request for these URIs. Dialog Resizing --------------- Delegated UI dialogs receive their initial size (dimensions) based on the oslc:hintWidth and oslc:hintHeight properties described in oslc:Dialog resource description. There are cases where UI Provider recognizes that the initial size of a Delegated UI dialog is not sufficient and needs a way to ask the UI Consumer to resize the dialog. In this section we specify a mechanism that enables dialog resizing, but only when Post Message Protocol is used. Consumers MAY honor a dialog's ability to dynamically resize. Those that do (a) MUST use Post Message Protocol, (b) MUST use the oslc:resize value instead of any static width or height, and and (c) MUST register a handler to receive dialog resize messages sent by the dialog Provider and adjust the size of the dialog accordingly. Since a dialog is allowed to resize itself any number of times, the Consumer MUST keep a handler registered and react appropriately each time it received a dialog resize message from that dialog. UI Providers SHOULD NOT request sizes larger than 95% of the current viewport, to avoid covering the entire viewport with the dialog. Here are the responsibilities of the UI Consumer and UI Provider in dialog resizing. The UI Consumer's responsibilities 1 Include the Delegated UI Dialog via iframe (i.e setting iframe src to the URI of the Delegated UI Dialog) or via an embedded browser. 1 Add a 'message' listener to the outer window to receive messages from the Delegated UI Dialog. 1 Listen for window 'message' events, ignoring events from other sources or not prefixed with "oslc-resize:". Multiple resize 'message' events may be sent while the dialog is visible. 1 When message from Delegated UI Dialog indicates user completed action, free resources and handle action. The UI Provider's responsibilities 1 Provide Delegated UI Dialog, an HTML page that provides a user interface for resource creation or selection. 1 Allow the user to perform resource creation or selection. 1 Once the Provider needs to resize the dialog, send notification using postMessage() to the page's parent window, passed in event.data string, that is prefixed with "oslc-resize:". Multiple resize messages may be sent. See below for the response format. 1 If the page is not parented, then the message is posted to the page's own window. The page must ignore this message to itself. The below JavaScript code example shows how a UI Provider page would send a response using postMessage() and taking into account the fact that some pages are not parented. function respondWithPostMessage(/string/ resize_response) { (window.parent | window).postMessage("oslc-resize:" + resize_response, "*"); } Regardless of how the response from the UI Provider is conveyed to the UI Consumer, the response SHOULD be formatted as follows: | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:------------------|:------------|:----------|:-----------|:----------------|:------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | oslc:hintHeight | exactly-one | True | String | n/a | n/a | New dialog height size. Height size MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size) | | oslc:hintWidth | exactly-one | True | String | n/a | n/a | New dialog width size. Width size MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size) | An example Dialog Resize response with new height of '600px' and a width of '400px': { "oslc:hintHeight" : "600px", "oslc:hintWidth" : "400px" } That brings us to the end of the Delegated UI section. Next up, another UI related topic. ------------------------------------------------------------------------ User Interface Previews OSLC providers MAY support a technique known as User Interface (UI) Preview, that can be used to show a user in-context information when displaying a link to a resource, and to show more information when the user's mouse lingers over the link. OSLC providers which offer UI Preview MUST do so in accordance with the OSLC Core UI Preview Specification. ------------------------------------------------------------------------ Authentication OSLC Services use standard web protocols for authentication. OSLC Services can use HTTP Basic Authentication, OAuth or both. HTTP Basic Authentication ------------------------- OSLC Services MAY protect resources with HTTP Basic Authentication. OSLC Services that use HTTP Basic Authentication SHOULD do so only via SSL. OAuth Authentication -------------------- OSLC Services MAY protect resources with OAuth Authentication. Form Based Authentication ------------------------- OSLC Services MAY use other authentication mechanisms, including those common described as Form Based Authentication. OSLC Services that choose to use other authentication mechanisms are responsible for specifying how those mechanisms work. ------------------------------------------------------------------------ Error Responses OSLC Services the standard mechanisms of HTTP to report status and error codes to clients. When an error occurs and useful information can be provided to clients OSLC Services SHOULD return error information in the body of the response. OSLC Services SHOULD use the Error resource defined below as the basis for forming error responses. OSLC Services SHOULD return an Error resource using the same representation requested by the client via the HTTP Accept header. Conceptual Model ---------------- The following OSLC Defined Resource can be used as the basis for forming an error response. Resource: Error Name: Error URI: http://open-services.net/ns/core#Error | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:---------------------|:------------|:----------|:-----------|:----------------|:---------------------|:-----------------------------------------------------------| | oslc:statusCode | exactly-one | True | String | n/a | n/a | The HTTP status code reported with the error. | | oslc:message | exactly-one | True | String | n/a | n/a | An informative message describing the error that occurred. | | oslc:extendedError | zero-or-one | True | Either | Either | oslc:ExtendedError | Extended error information | Resource: Extended Error Name: ExtendedError URI: http://open-services.net/ns/coreExtendedError | Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |:------------------|:------------|:----------|:-----------|:----------------|:------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | oslc:moreInfo | zero-or-one | True | Resource | Reference | Any | A resource giving more information on the error SHOULD be of an HTML content-type. | | oslc:rel | zero-or-one | True | String | n/a | n/a | If present and set to 'alternate' then indicates that work-around is provided, behavior for other values is undefined. | | oslc:hintWidth | zero-or-one | True | String | n/a | n/a | Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size). | | oslc:hintHeight | zero-or-one | True | String | n/a | n/a | Values MUST be expressed in relative length units as defined in the W3C Cascading Style Sheets Specification (CSS 2.1) Em and ex units are interpreted relative to the default system font (at 100% size). | ------------------------------------------------------------------------ Specification Versioning One of the goals of the OSLC initiative is to mitigate or eliminate the need for lock-step version upgrades, where clients or services target one version of a specification and break when new versions are introduced -- requiring all services to be upgraded simultaneously. In this section we specify a version header that will enable old "Version 1" OSLC clients to continue to work and share the same resource URIs as used by clients that specifically target the Core. And we establish rules that will enable clients to continue to work as new versions of specifications are introduced. Supporting pre-Core clients --------------------------- We anticipate that the OSLC Core and domain specifications will each be versioned independently and each version will be assigned a version number, but we would like to avoid exposing version numbers in OSLC implementations. There is one use case that requires version information to be exposed. We must ensure that old OSLC "Version 1" clients continue to work. To enable OSLC Service specifications to evolve without breaking existing clients, we introduce an HTTP Header, OSLC-Core-Version set to the Core specification version number "2.0". We expect clients that target the Core to send this HTTP header. If the OSLC-Core-Version header is present and set to a version that the service can support, then the service MUST return a representation that is complies with the specified version. If the OSLC-Core-Version header is present and indicates a specification version that the service cannot support, the service SHOULD respond with what it determines is the most compatible version that it can return. If the OSLC-Core-Version header is not present then the OSLC Service SHOULD respond by returning a resource that conforms to the earliest or most compatible (as determined by the implementation) specification version's representation. Services that never offered an OSLC Version 1 interface can ignore this restriction. When returning an OSLC Defined Resource, OSLC Services MUST return the OSLC-Core-Version header set to the Core specification with which the representation complies. Rules for new versions of OSLC specifications --------------------------------------------- When specifying a new version of an OSLC specification the rule is this: **A new version of an OSLC specification is not allowed to introduce changes that will break old clients.** Here are some guidelines for OSLC workgroups defining new specifications or upgrades to existing ones: If you believe that you need a property but cannot agree on the value-type, then this is a strong indication that you should not attempt to standardize on the property. Once you decide on a value-type you are stuck with it forever. Wait until you have the scenarios or implementation experience needed to agree on type. When introducing a new capability in a new version of a specification, e.g. a creation factory, query capability or delegated UI dialog; one that works differently than those specified in the Core spec or older versions of your own specification, you should create a new resource type to represent the service. This will enable old clients to continue to work against old services and new clients to work with your new capabilities. When defining resources, do not remove, change the meaning or the value-type of any properties that you defined in earlier versions of the specification. You can add new properties but not change those that already exist. It is possible to relax restrictions on clients, because relaxing restrictions should not break clients. But it is not possible to relax restrictions on services, because clients expect to find the required fields and if they are missing, clients will break. Before defining a new property within your OSLC domain's namespace consult the list of common properties in OSLC Core Spec Appendix A to see if using a common property would be more appropriate. Migrating to the Core Specification ----------------------------------- Most of the first OSLC specifications were developed before this Core specification existed and do not implement versioning as described above and so must use some other mechanism to migrate to the OSLC Core v1.0 specification. OSLC implementations that wish to continue to support old pre-Core OSLC or OSLC v1.0 specifications can do so by keeping the old implementation in place and adding the new OSLC Core v1 implementation with different service provider, query capability and creation factory URIs. ------------------------------------------------------------------------ &lt;a name="OslcDefinedResourceRepresentations" title="OslcDefinedResourceRepresentations"&gt;&lt;/a&gt; OSLC Defined Resource Representations This section specifies what resource representations are required for OSLC resources, some requirements for providing representations and some rational for the requirement that OSLC Services provide RDF/XML representations. OSLC resource representations come in many forms and are subject to standard HTTP mechanisms for content negotiation. OSLC domain specifications (1) SHOULD require the representations needed for the specific scenarios that they are addressing and (2) SHOULD recognize that different representations are appropriate for different purposes. For example, browser oriented scenarios might be best addressed by JSON or Atom format representations. For these reasons, OSLC Services MAY provide and accept standard or emerging standard formats such as XML, JSON, HTML, Turtle and the Atom Syndication Format. OSLC domain specifications are also expected to follow common practices and conventions that are in concert with existing industry standards and offer consistency across domains. All of the OSLC specifications are built upon the standard RDF data model, allowing OSLC to align with the W3C's Linked Data initiative. In addition, all OSLC specifications have adopted the convention to illustrate RDF/XML representations and will typically require RDF/XML representations to enable consistency across OSLC implementations. For those reasons, OSLC Services SHOULD provide and accept RDF/XML representations for each OSLC resource. Though the OSLC Core workgroup does provide guidance on how to form RDF/XML representations using a subset of RDF/XML (reference: [Appendix B - Representation Guidance and Examples](OSLCCoreSpecAppendixRepresentations)), OSLC clients **SHOULD NOT* assume any specific form of RDF/XML. It is *RECOMMENDED** that OSLC Services also provide an HTML representation for each resource. Use standard content-types Note that existing standard content-types are used, e.g. application/rdf+xml and application/json, in this document and no new content-types are introduced (except for the one introduced in the UI Preview specification). Those writing OSLC specifications are strongly encouraged to follow this pattern -- use standard and existing content-types and avoid inventing new content-types for existing formats. In past OSLC specifications we defined a specific RDF/XML format for each resource defined and gave each its own content-type. This implied to consumers that each resource had a different format when in reality they were all standard RDF/XML. Using different content-types makes it more difficult to write generic tools, crawlers and other services that work across all data. Order of property values insignificant This specification defines how OSLC property values are to be represented in a variety of formats. Except in the case of a sorted Query Response, the ordering of property values is insignificant. OSLC clients and service providers MUST not place any significance on the ordering of property values in representations. Use Absolute URIs OSLC representations MUST use absolute URIs in all cases except XML representations, where the xml:base attribute may be used to allow relative URIs to be resolved to absolute form (reference: XML Base). Before a resource representation that uses xml:base is posted to an OSLC Service for creation, it may include relative URIs that cannot be resolved until the OSLC Service has received, created and assigned a URI to the new resource. Appendix A: Common Properties and Resources See separate page OSLC Core Spec Appendix A Appendix B: Representation Guidance and Examples See separate page [OSLC Core Spec Appendix B](OSLCCoreSpecAppendixRepresentations) Appendix C: Guidance on Links and Relationships See separate page OSLC Core Spec Appendix C Appendix D: References These are the specifications referenced by the OSLC Core Specification. BNF [Backus-Naur Form](http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form) CSS 2.1 - [Cascading Style Sheets Level 2 Revision 2 v2.1](http://www.w3.org/TR/2009/CR-CSS2-20090908/) Dublin Core 1.1 - [Dublin Core Metadata Element Set, Version 1.1](http://dublincore.org/documents/2010/10/11/dces/) FOAF - [Friend of a Friend (FOAF) v0.98](http://xmlns.com/foaf/spec/20100809.html) HTML5 Posting Message- [ W3C HTML5 postMessage](http://www.w3.org/TR/html5/comms.htmlposting-messages) HTTP 1.1 - [Hyper-text Transfer Protocol (HTTP/1.1)](http://tools.ietf.org/html/rfc2616) OAuth 1.0a - [RFC5849 - The OAuth 1.0 Protocol](http://tools.ietf.org/html/rfc5849) RDF/XML Concepts - [RDF/XML Concepts and Abstract Syntax](http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/) RDF/XML Syntax - [RDF / XML Syntax Specification (Revised)](http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/) Turtle - http://www.w3.org/TeamSubmission/turtle/ URI Syntax - [URI Generic Syntax](http://tools.ietf.org/html/rfc3986) Window Object - [Window Object 1.0 Window.name](http://www.w3.org/TR/Window/#window-embedding) XML Namespaces - [Namespaces in XML 1.0 (Third Edition)](http://www.w3.org/TR/REC-xml-names/) XML Base - [XML Base (Second Edition)](http://www.w3.org/TR/xmlbase/) XSD Datatypes - [XML Schema Part 2: Datatypes Second Edition](http://www.w3.org/TR/xmlschema-2)

The conversion is done via: pandoc --from twiki --to markdown_mmd -o _index.md source.twiki

---+!! Open Services for Lifecycle CollaborationCore Specification Version 2.0 *This Version* * [[http://open-services.net/bin/view/Main/OslcCoreSpecification]] *Latest Version* * [[http://open-services.net/bin/view/Main/OslcCoreSpecification]] *Authors* * Dave Johnson, Steve Speicher *Contributors* * The [[OslcCore][OSLC Core Specification Workgroup]] *Table of Contents* %TOC{depth="2"}% *License* [[http://i.creativecommons.org/l/by/3.0/us/88x31.png]] This work is licensed under a [[http://creativecommons.org/licenses/by/3.0/us/][Creative Commons Attribution License]]. *Notation and Conventions* The key words "MUST", "MUST NOT", "REQUIRED, SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this document are to be interpreted as described in [[http://www.ietf.org/rfc/rfc2119.txt][RFC-2119]]. This document is a mixture of normative and informative text. See the [[#TheGlossary][the glossary]] below for definitions of these terms. --- ---+ Overview (this section is informative) The Open Services for Lifecycle Collaboration (OSLC) initiative is creating a family of web services specifications for products, services and other tools that support all phases of the software and product lifecycle. The purpose of these specifications is to enable integration between products that support Application Life-cycle Management (ALM) and Product Life-cycle Management (PLM). Each part of the lifecycle or domain has its own group and specification, for example there are Change Management, Quality Management, Estimation & Measurement and more. Each of the domain specifications are built upon this core specification. This OSLC Core Specification sets out the common features that every OSLC Service can be expected to support using terminology from the World Wide Web Consortium (!W3C). New terminology that we introduce can be found in the glossary section below. This specification is mostly about OSLC Services, it specifies what OSLC Services MUST, SHOULD and MAY do. It also contains some required behaviors for OSLC clients and rules for OSLC domain specifications that extend this specification. OSLC Services are accessible via a Service Provider Resource that describes the Services offered. Each Service can provide Creation Factories for resource creation, Query Capabilities for resource query and Delegated UI Dialogs to enable clients to create and select resources via a web UI. Query Capabilities and Creation Factories may offer Resource Shapes that describe the properties of resources managed by the service. This is illustrated in the diagram below. See the section below on Service Provider Resources for further discussion of these concepts. *Figure #1: OSLC Core Specification concepts and relationships* This specification establishes terminology and rules for defining resources in terms of the property names and value-types that are allowed and required. OSLC domain specifications are expected to use these rules and terminologies to describe their resources. See the OSLC Defined Resources section for more on this topic. This specification also sets out rules for creating resource representations in RDF/XML, JSON, Atom and Turtle formats. OSLC domain specifications are expected to refer to these rules when specifying how their resources are to be represented. See the OSLC Defined Resource Representations section for the representation rules and examples of each format. #AboutTheVersionNumber *About the version number.* We use the version number "2.0" even though there has never been an OSLC Core Version 1.0 specification. We do this because this OSLC Core specification was written after a series of version 1.0 domain specifications were finalized by OSLC workgroups. The version 2.0 domain specifications will all be based on this Core specification and _to avoid confusion_ this specification will also be known as Version 2.0. *About RDF*. The resource and property-based data model used in OSLC resources is based on the Resource Description Framework (RDF) and OSLC requires RDF representations, but OSLC uses a small number of RDF concepts and does not require implementers to provide an RDF triple-store or a SPARQL query-engine. ---++ Design considerations The core philosophies of OSLC are to build on the powerful and scalable architecture of the World Wide Web and to do the simplest possible things that will work. *Build on the WWW*. OSLC builds on the architecture of the WWW and follows the REST architectural pattern. This means that OSLC Services provide a uniform HTTP interface, OSLC URIs are stable and opaque and, in simple terms, OSLC works like the web. *Keep things simple*. Doing the simplest things that will possibly work means a couple of different things in regard to OSLC. It means starting with simple and existing concepts. For example, we model everything as resources with property values and do not stray from that model. Keeping things simple also means building on established and well-known specifications, but also carefully limiting the number of other specifications that we reference. This simplicity is intended to enable loose coupling and to make life easier for everybody: OSLC domain work groups, OSLC Service implementers and OSLC client developers. *Accommodate different schemas*. Because of the breadth of the OSLC domains, spanning lifecycle and platforms, OSLC has to work for systems with very different data schemas or no schemas at all. Flexibility is needed, but some OSLC Services must be able to offer information about resource properties so that clients can learn which are allowed and required for resource creation, query and reporting. *Accommodate different representations*. Different client platforms might require or at least prefer different representations. For example, in the browser a JSON or Atom format representation might work best. OSLC Services will all support RDF/XML and may support other formats including JSON, Atom and Turtle. *Align with the !W3C Linked Data initiative*. Instead of defining a new data model, OSLC&rsquo;s resource and property-value approach is based on industry standard Resource Description Framework (RDF) data model. This model allows OSLC to keep things simple, build on the WWW and accommodate different schemas. ---++ Glossary of terms This is a guide to some of the terminology used in this document. The following definitions are standard !W3C concepts. OSLC uses these concepts without modification &ndash; their definitions are summarized here for the convenience of the reader. See http://www.w3c.org. * *Resource*: A network data object or service that can be identified by a URI. Resources may be available in multiple representations (e.g. multiple languages, data formats, size, resolutions) or vary in other ways. (reference: HTTP) * *Representation*: An HTTP payload entity, included in an HTTP response, that is subject to content negotiation. There may exist multiple representations. associated with a particular HTTP response status. (reference: HTTP) * *URI*: Uniform Resource Identifiers are simply formatted strings which identify--via name, location, or any other characteristic -- a resource (reference: URI Syntax) Here are the OSLC specific terms used in this specification. (these definitions are normative) * *OSLC Domain*: an OSLC Domain is one ALM or PLM topic area such as Change Management, Requirements management or Automation. Each OSLC Domain will have its own OSLC specification that complies with this Core specification. * *OSLC Service*: a set of capabilities that enable a web client to create, retrieve, update and delete resources managed by an ALM or PLM product or online service offering and associated with one OSLC Domain. * *OSLC Service Provider*: a product or online service offering that provides an implementation of one or more OSLC Services, which may themselves implement different OSLC Domain specifications. * *OSLC Resource*: a resource that is managed by an OSLC Service, may have properties and may link to other resources including those provided by other OSLC Services. * *OSLC Defined Resource*: a resource that is defined by an OSLC specification, see OSLC Defined Resources below. * *OSLC Defined Properties*: resource properties that are defined by an OSLC specification, defined by an OSLC Resource Shape or both. * *OSLC Resource Shape*: defines the set of OSLC Properties expected in a resource for specific operations (i.e. creation, update or query) for each their value types, allowed values, cardinality and optionality. Examples of such operations include OSLC Creation Resource and Query Resource. Other examples might include applications that display data in tables. * *OSLC Creation Factory*. A creation factory provides a URI used to create new resources via HTTP POST and may also provide Resource Shapes that describe the types of resources that may be created. * *OSLC Query* *Capability*: A query capability provides a base URI for forming query resource URIs and, optionally, Resource Shapes that describe the property values that may be used in query expressions and returned in query results. * *OSLC Response Info Resource*: An OSLC Defined Resource that provides information about a paged resource representation, e.g. the next page in a multi-page query result representation. Here are some industry terms that we use in this specification: * *Application Lifecycle Management (ALM)*: ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management ([[http://en.wikipedia.org/wiki/Application_lifecycle_management]]). * *Product Lifecycle Management (PLM)*: In industry, product lifecycle management (PLM) is the process of managing the entire lifecycle of a product from its conception, through design and manufacture, to service and disposal (from [[http://en.wikipedia.org/wiki/Product_lifecycle_management]]). And finally, we use the following two terms to describe portions of the OSLC Core specification: * *Normative*. Normative sections of this document set forth requirements that must be met to establish conformance with the OSLC Core specification; or providing recommendations or optional courses of action. This is done using use words from [[http://www.ietf.org/rfc/rfc2119.txt][RFC-2119]] (e.g. MUST, SHOULD, MAY, etc.). For recommended or optional features, conformance is not dependent on the fact of implementation, but, if implemented, that implementation is as prescribed in this specification. Contrast with informative. * *Informative*. Informative text provides background or explanation. Contrast with Normative. It should be clear which sentences and paragraphs are informative from the context and the absence of RFC-2119 keywords. Sections that are purely informative will be marked as informative. Informative text that might be mistaken for normative will also be marked. --- ---+ OSLC Defined Resources An OSLC Resource is a resource managed by an OSLC Service. An OSLC Resource is typically something like a Change Request, a Requirement or some other ALM or PLM artifact or record, but an OSLC Resource could also be a video or a presentation file. The resource&rsquo;s storage medium is unconstrained by OSLC, e.g. it could be stored in a relational database, a flat-file on disk, a source code control system, or in any other way. An OSLC Service can manage any type of resource; OSLC specifications only constrain an OSLC Service&rsquo;s behavior with respect to resource types it manages that are defined by OSLC specifications (OSLC Defined Resources). OSLC Defined Resources may be specified in any OSLC specification, including this document. Resources are defined by the properties that are allowed and required in the resource. ---++ OSLC Defined Resources OSLC uses a simple model of resources with property values intended to be consistent with the Resource Description Framework (RDF) data model (reference: RDF Concepts). OSLC also builds upon the Extensible Markup Language (XML) namespace mechanism (reference: XML Namespaces). When specifying a resource or a property, OSLC Specifications define its type as a URI which can be decomposed into a namespace URI and a name. We abbreviate type URIs as Prefixed Names (reference: Prefixed Names), which are represented in XML as QNames. The namespace used for resources defined in this specification is defined as follows: * Namespace URI: =http://open-services.net/ns/core#= * Default Prefix: =oslc= When defining an OSLC Resource type, OSLC Specifications *MUST* provide the following information: * *Name* (String): name of the resource which *MUST* be valid as the Local Name part of a QName (reference: XML Namespaces). * *URI* (URI): The URI of the resource definition. Per the rules of Prefixed Names, this URI is formed by appending the Name to the end of the Namespace URI in the specification that defines the resource. For example, the resource named Service (defined below) gets the Type URI of =http://open-services.net/ns/core#Service=. Once a resource type is defined, its allowed and required properties can be defined. Regardless of any property definitions, providers and clients MAY impose implementation-specific limits on resources they accept. For example, they are not required to accept/create/store resources whose RDF triples contain objects with arbitrarily large literal values. ---+++ Defining OSLC Properties OSLC Specifications *MAY* provide a list of properties allowed and/or required for a particular domain and operation on an OSLC Defined Resource; if no operation is specified, then the list applies to all operations governed by that specification. Specifications that provide a list of properties and constraints on them *SHOULD* provide the following information for each property that they define. * *Name*: name of the property which *MUST* be valid as the Local Name part of a QName (reference: XML Namespaces). * *URI*: The URI that identifies the property. The URI is formed by appending the Name to the end of the Namespace URI associated with the property. For example, the resource named =oslc:ServiceProviderCatalog= (defined below in the Service Providers Section) defines a property named =domain= with the URI of =http://open-services.net/ns/core#domain= * *Description*: Description of the property. * *Occurs*: value *MUST* be one of: * [[http://open-services.net/ns/core#Exactly-one][ =http://open-services.net/ns/core#Exactly-one= ]] * [[http://open-services.net/ns/core#Zero-or-one][ =http://open-services.net/ns/core#Zero-or-one= ]] * [[http://open-services.net/ns/core#Zero-or-many][ =http://open-services.net/ns/core#Zero-or-many= ]] * [[http://open-services.net/ns/core#One-or-many][ =http://open-services.net/ns/core#One-or-many= ]] * *Value-types*: A property *MAY* allow multiple value-types and a value *MUST* satisfy one or more of them. Each value-type *MUST* be a URI that corresponds to one of the following: * Literal value-types: * *Boolean*: a boolean type as specified by XSD Boolean ( =http://www.w3.org/2001/XMLSchema#boolean=, reference: XSD Datatypes). * *DateTime*: a Date and Time type as specified by XSD dateTime ( =http://www.w3.org/2001/XMLSchema#dateTime=, reference: XSD Datatypes). * *Decimal*: a decimal number type as specified by XSD Decimal ( =http://www.w3.org/2001/XMLSchema#decimal=, reference: XSD Datatypes). * *Double*: a double floating-point number type as specified by XSD Double ( =http://www.w3.org/2001/XMLSchema#double=, reference: XSD Datatypes). * *Float*: a floating-point number type as specified by XSD Float ( =http://www.w3.org/2001/XMLSchema#float=, reference: XSD Datatypes). * *Integer:* an integer number type as specified by XSD Integer ( =http://www.w3.org/2001/XMLSchema#integer=, reference: XSD Datatypes). * *String*: a string type as specified by XSD String ( =http://www.w3.org/2001/XMLSchema#string=, reference: XSD Datatypes). * *XMLLiteral*: a Literal XML value ( [[http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral][ =http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral= ]]). * Resource value-types: * *Resource*: value is a resource at a specified URI (i.e. a URI Reference) ( [[http://open-services.net/ns/core#Resource][ =http://open-services.net/ns/core#Resource= ]] ). * *Local Resource*: value is an resource available only inside the resource being defined (i.e. a Blank Node) ( [[http://open-services.net/ns/core#LocalResource][ =http://open-services.net/ns/core#LocalResource= ]] ). * *AnyResource*: value is either a *Resource* or *Local Resource* as defined above ( [[http://open-services.net/ns/core#AnyResource][ =http://open-services.net/ns/core#AnyResource= ]] ). * *Representation*: for properties with a resource value-type, OSLC specifications should also specify how the resource will be represented. The options are [[http://open-services.net/ns/core#Reference][ =http://open-services.net/ns/core#Reference= ]] , [[http://open-services.net/ns/core#Inline][ =http://open-services.net/ns/core#Inline= ]] or [[http://open-services.net/ns/core#Either][ =http://open-services.net/ns/core#Either= ]]. * *Range*: for properties with a resource value-type, OSLC specifications should follow the best practices in [[OslcCoreSpecAppendixLinks][Appendix C Guidance on Links and Relationships]], which usually results in no restrictions on the range of possible resource types allowed, and an informative recommendation in the property description suggesting which resource types implementations should expect to find. This can be specified as a list of one or more resource types specified by URI reference; when no restrictions are required, use the string any. Clients SHOULD allow any resource type as the target of a link. Providers are strongly *RECOMMENDED* to behave reasonably for all resource types listed in a property&rsquo;s description, and to degrade gracefully for others, as defined in Appendix C. * *Read-only*: Boolean indication of whether or not clients are permitted to replace the property&rsquo;s value after the resource has been created. Allowable values are: true, false, unspecified. * *True* indicates that providers *SHOULD NOT* permit clients to change the property&rsquo;s value after the resource has been created. * *False* indicates that providers *MAY* permit clients to change the property&rsquo;s value after the resource has been created. * *Unspecified* indicates that the domain specification leaves the choice up to provider implementations. In the rest of this document we will define OSLC resources as described above. The below section titled OSLC Defined Resource Representations defines how OSLC resources are to be represented in RDF/XML, JSON and other formats. OSLC Services that wish to provide the information above in a machine-readable format *MAY* use OSLC Resource Shapes, see [[OSLC Core Spec Appendix A][Appendix A: Common Properties and Resources]] for more information. NOTE: we do not mention Internationalization of strings here because we expect standard HTTP content-negotiation and representation (e.g. =xml:lang=) mechanisms to be used for such. ---++ Unknown properties and content For OSLC Defined Resources, clients *SHOULD* assume that an OSLC Service will discard unknown property values. An OSLC Service *MAY* discard property values that are not part of the resource definition or Resource Shape known by the server. If a client needs verification that the requested update was accepted it *SHOULD* note the HTTP response header ETag value returned with the HTTP PUT, Immediately HTTP GET the resource back and compare the HTTP response header ETag value and contents with its expectations. The Service *SHOULD* *NOT* return an error code for unrecognized content. A Service *MUST* return an error code if recognized content is invalid. The rule is different for clients. When doing an update, OSLC clients *MUST* preserve any unknown property-values and other content in OSLC Defined Resources. See following section on Resource Update. ---++ Resource Operations OSLC Services use HTTP for create, retrieve, update and delete operations on resources. OSLC Services *MUST* comply with the HTTP specification (reference: HTTP). ---+++ Resource Creation (this section is informative) To create an OSLC Defined Resource, or any type of resource managed by an OSLC Service, an OSLC client HTTP POSTs a representation of that resource to a Creation URI. See the section on [[#Creation_Factories][Creation Factories]] for more information. ---+++ Resource Removal (this section is informative) To delete an OSLC Defined Resource, or any type of resource managed by a service, a client performs an HTTP DELETE on the resource's URI. ---+++ Resource Update To update an OSLC Resource in an OSLC Service, a client fetches a representation of that resource via HTTP GET. The client updates the representation and then uses HTTP PUT to send the new representation to the resource's URI. Recall from [[#Unknown_properties_and_content][OSLC Defined Resources: Unknown properties and content]] above that, when doing an update, OSLC clients must preserve any unknown property-values and other content in OSLC Defined Resources. Because the update process involves first getting a resource, modifying it and then later putting it back to the server there is the possibility of a conflict, e.g. some other client may have have updated the resource since the GET. To mitigate this problem, OSLC Services *SHOULD* use the HTTP =If-Match= header: * If the HTTP =If-Match= header is missing OSLC Services *SHOULD* return HTTP Bad Request (400) status code to indicate that the header is required. * If the HTTP =If-Match= header is present OSLC Services *MUST* behave as described in the HTTP specification, returning an HTTP Precondition Failed (412) error to indicate that the header does not match. * If the HTTP =If-Match= header is present and it matches, but there is some other problem or conflict with the update then OSLC Services *MAY* return an HTTP Conflict (409) to indicate that problem. Note that section [[#Error_Responses][Error Responses]] below, we specify that when an error occurs and useful information can be provided to clients OSLC Services *SHOULD* return error information in the body of the response. ---++ Resource Paging OSLC Services *MAY* support a technique called Resource Paging to enable clients to retrieve resources one page at a time. When a client requests a resource, the client can expect that the entire resource will be returned in the response, with all property values. This can be problematic because, in some cases, resources may be so large that a client might not want to retrieve the entire resource in one HTTP response. One solution for response size-sensitive Clients is to check size before loading. Clients that do not wish to load large resources can use the HTTP HEAD method to determine the size of a resource and, according to the rules of HTTP the server's *SHOULD* include an HTTP Content-Length header that indicates the size of the resource as the "decimal number of OCTETs." If the size is too large, a client can choose not to retrieve the resource. Another solution is to use Resource Paging; here's how it works. To get a paged version of a resource, a client adds the "key=value" pair =oslc.paging=true= to the query component of the resource URI and the server *MAY* respond by returning a representation that contains partial information about the resource; only a subset of the resource's property values. When a page is returned and it is *NOT* the last page in the sequence, then it *SHOULD* include an =oslc:ResponseInfo= (defined below), which that contains a resource-valued property =oslc:nextPage= that links to a resource that represents the next page of property-values. Because paging is unstable (see below), by the time a client follows an =oslc:nextPage= link there may no longe be a next page, in this case the server *MAY* respond with an HTTP 404 Page Not Found status code. A client can also request paging by adding the "key=value" pair =oslc.pageSize= to the query string component of the resource URI. By adding this, a client requests that the server respond with a specific number of property values. For example, =oslc.pageSize=20= indicates to the server that the client would like 20 values per page. OSLC Services *MAY* ignore =oslc.pageSize=. When Resource Paging is used, the values of a multi-valued property *MAY* be split across resource pages. Each property value *MUST* be represented in its entirety and not split across multiple partial resource pages. ---+++ Provider response-size limitations When a client requests a resource that an OSLC Service considers to be too large to return in one response and the client has not indicated that it desires paging (via oslc.paging or oslc.pageSize), the OSLC Service *MAY* redirect the client to a representation that contains partial information about the resource, as follows: * The OSLC Service receives an HTTP GET request for a resource that exceeds size limits and URL does not include =oslc.paging= or an =oslc.pageSize= key/value pair. * The OSLC Service returns an HTTP Status 302 redirect a URL that does include the key/values for paging, as follows: * If the client did not indicate paging, the new redirect URL *MUST* include the =oslc.paging= pair. * If the client indicated a page size, then the redirect URL *MUST* include the =oslc.pageSize= pair with a size value that is acceptable to the service. * The client *MAY* choose to follow the redirect and receive a representation that contains partial information about the resource. On receiving a resource representation, OSLC Clients *SHOULD* check for the presence of an =oslc:nextPage= value to determine if the representation contains partial information about the resource. If the value is present, then paging is in effect and the representation contains partial information about the resource. ---+++ Unstable Paging Because HTTP is a stateless protocol and OSLC Services manage resources that can change frequently, OSLC clients *SHOULD* assume that resources can change as they page through them using the =oslc:nextPage= mechanism. ---+++ Stable Paging Some OSLC Services might wish to guarantee stable paging, meaning that the chain of =oslc:nextPage= links in a resource represent a snapshot in time and will not change as the client pages through them. OSLC specifications that require stable paging *SHOULD* state this requirement and specify to which resources it applies. Note that because stable paging implementations are based on server-side state, it is possible that such state will expire. Implementations *MAY* use the HTTP response code 410 (Expired) to indicate to clients that the next-page link they requested has expired. ---+++ Response Information Resource representations returned via Resource Paging *MUST* include a resource of type =oslc:ResponseInfo=, as defined in this section. A response info resource representation describes information about a paged HTTP response body in which it appears. * *Name*: =ResponseInfo= * *URI*: =http://open-services.net/ns/core#ResponseInfo= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =dcterms:title= | zero-or-one | True | XML Literal | n/a | n/a | Title of the response | | =dcterms:description= | zero-or-one | True | XML Literal | n/a | n/a | Description of response | | =oslc:nextPage= | zero-or-one | True | Resource | Reference | =any= | Link to next page of response | | =oslc:totalCount= | zero-or-one | True | Integer | n/a | n/a | This optional property indicates the total number of results across all pages, its value should be non-negative. In the context of a query resource, this value *SHOULD* be the total number of results, i.e. the number of resources that match the query. In the context of other resources, the value *SHOULD* be the total number of property values (i.e. RDF triples) of the resource. Unless Stable Paging is in effect, the total count *MAY* vary as a client retrieves subsequent pages. | The subject resource URI of the =oslc:ResponseInfo= resource representation will be the HTTP request URI, or URI from subsequent redirects. The response representation may also include properties from subject resources different from the one identified by the request URI. Here's an example, using the OSLC Core RDF/XML representation guidance, that illustrates how the =oslc:ResponseInfo= resource representation is included in addition to the blog entry resource representation. *Example: Resource Paging, partial response with response info resource representation* Example URI: =http://example.com/blogs/entry/1?oslc.paging=true&pageno=2= Refer to the OSLC Defined Resource Representation guidance for an explanation of how the response info resource may be represented in RDF/XML. ---++ Selective Property Values OSLC Services *MAY* support a technique called Selective Properties to enable clients to retrieve only selected property values. By adding the key=value pair =oslc.properties=, specified below, to a resource URI, a client can request a new resource with a subset of the original resource's values. Here's how the selective properties values =oslc.properties= and =oslc.prefix= work. ---+++ oslc.properties The =oslc.properties= key=value pair lets you specify the set of properties to be included in the response. Both immediate and nested properties may be specified. A nested property is a property that belongs to the resource referenced by another property. Nested properties are enclosed in brace brackets, and this nesting may be done recursively, i.e. a nested property may contain other nested properties. For example, suppose we have a bug report resource at the following URL: http://example.com/bugs/4242 Suppose this bug resource has properties such as =dcterms:title=, =dcterms:description=, and =dcterms:creator=, and that =dcterms:creator= refers to a person resource that has properties such as =foaf:givenName= and =foaf:familyName=. Suppose you want a representation of the bug report that includes its =dcterms:title= and the =foaf:givenName= and =foaf:familyName= of the person refered to by its =dcterms:creator=. The following URL illustrates the use of the =oslc.properties= query value to include those properties: http://example.com/bugs/4242?oslc.properties=dcterms:title,dcterms:creator{foaf:givenName,foaf:familyName} *Syntax* The =oslc.properties= pair is defined by the =oslc_properties= term in the following BNF grammar: oslc_properties ::= "oslc.properties=" properties properties ::= property ("," property)* property ::= identifier | wildcard | nested_prop nested_prop ::= (identifier | wildcard) "{" properties "}" wildcard ::= "*" identifier ::= PrefixedName PrefixedName ::= /* see "SPARQL Query Lanaguage for RDF", http://www.w3.org/TR/rdf-sparql-query/#rPrefixedName */ ---+++ oslc.prefix In our examples of =oslc.properties=, property names include a URI prefix, i.e. =dcterms:= or =foaf:=. An OSLC Service *SHOULD* predefine URI prefixes for its properties. Here we assume that OSLC has predefined the Dublin Core ( =dcterms:=) and Friend of a Friend ( =foaf:=) prefixes. However, OSLC resources *SHOULD* also be open to new content, which means that new properties may not have predefined URI prefixes. We therefore need a way to define new URI prefixes in resource requests. The =oslc.prefix= value lets you specify URI prefixes used in property names. For example, suppose the =foaf:= prefix was not predefined. The following URL illustrates the use of the =oslc.prefix= value to define it: http://example.com/bugs/4242?oslc.prefix=foaf=&oslc.properties=foaf:lastName,... *Syntax* The syntax of the =oslc.prefix= is defined by the =oslc_prefix= term in the following BNF grammar: oslc_prefix ::= "oslc.prefix=" prefix_defs prefix_defs ::= prefix_def ("," prefix_def)* prefix_def ::= prefix "=" uri_ref_esc prefix ::= PN_PREFIX PN_PREFIX ::= /* see "SPARQL Query Lanaguage for RDF", http://www.w3.org/TR/rdf-sparql-query/#rPN_PREFIX */ uri_ref_esc ::= /* an angle bracket-delimited URI reference in which > and \ are \-escaped. */ ---++ Common Properties OSLC domains specifications are strongly encouraged to use the common properties approved by the OSLC Core Workgroup (See [[OSLC Core Spec Appendix A]]) rather than defining new properties. --- ---+ Service Provider Resources OSLC Services are accessible via a Service Provider Resource that describes each service, which domain specifications the service implements as well as the creation, query and delegated UI capabilities of each service. Additionally, a provider may offer a Service Provider Catalog that lists related Service Providers. ---++ Conceptual Model The conceptual model of Service Provider Catalog and Service Provider resources is simple. They are both resources with property values. The values allowed and required in each type of resource are defined below. The diagram below illustrates the Service Provider Catalog and Service Provider concepts and relationships. As you can see there are two Resources defined: Service Provider Catalog and Service Provider. There are also a set of Local In-Line Resources that are used inside the Resources to define namespaces, OAuth configurations, contributors as well as services and their capabilities. *Figure #2: Service Provider concepts and relationships* Next, we will formally define the Service Provider Catalog and Service Provider resources. ---+++ Resource: Service Provider Catalog An OSLC implementation that offers one or more Service Provider resources (see below), MAY also provide Service Provider Catalog to enable OSLC clients to find Service Providers offered. These catalogs may contain other nested catalogs as well as service providers. * *Name*: =ServiceProviderCatalog= * *URI*: =http://open-services.net/ns/core#ServiceProviderCatalog= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =dcterms:title= | zero-or-one | True | XMLLiteral | n/a | n/a | Title of the service provider catalog | | =dcterms:description= | zero-or-one | True | XMLLiteral | n/a | n/a | Description of the service provider catalog | | =dcterms:publisher= | zero-or-one | True | Local Resource | Inline | [[#Resource_Publisher][ =oslc:Publisher= ]] | Describes the software product that provides the implementation. | | =oslc:domain= | zero-or-many | True | Resource | Reference | n/a | Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used. | | =oslc:serviceProvider= | zero-or-many | True | Resource | Either | [[#Resource_Service_Provider][ =oslc:ServiceProvider= ]] | A service offered by the service provider. | | =oslc:serviceProviderCatalog= | zero-or-many | True | Resource | Either | [[#Resource_Service_Provider_Catalog][ =oslc:ServiceProviderCatalog= ]] | Additional service provider catalog. | | =oslc:oauthConfiguration= | zero-or-many | True | Local Resource | Inline | [[#Resource_OAuth_Configuration][ =oslc:OAuthConfiguration= ]] | Defines the three OAuth URIs required for a client to act as an OAuth consumer. | ---+++ Resource: Service Provider A Service Provider describes a set of services offered by an OSLC implementation. * *Name*: =ServiceProvider= * *URI*: =http://open-services.net/ns/core#ServiceProvider= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =dcterms:title= | zero-or-one | True | XMLLiteral | n/a | n/a | Title of the service provider | | =dcterms:description= | zero-or-one | True | XMLLiteral | n/a | n/a | Description of the service provider | | =dcterms:publisher= | zero-or-one | True | Local Resource | Inline | [[#Resource_Publisher][ =oslc:Publisher= ]] | Describes the software product that provides the implementation. | | =oslc:service= | one-or-many | True | Local Resource | Inline | [[#Resource_Service][ =oslc:Service= ]] | Describes a service offered by the service provider. | | =oslc:details= | zero-or-many | True | Resource | Reference | =any= | A URL that may be used to retrieve a web page to determine additional details about the service provider. | | =oslc:prefixDefinition= | zero-or-many | True | Local Resource | Inline | [[#Resource_Prefix_Definition][ =oslc:PrefixDefinition= ]] | Defines a namespace prefix for use in JSON representations and in forming OSLC Query Syntax strings. | | =oslc:oauthConfiguration= | zero-or-one | True | Local Resource | Inline | [[#Resource_OAuth_Configuration][ =oslc:OAuthConfiguration= ]] | Defines the three OAuth URIs required for a client to act as an OAuth consumer. | ---+++ Resource: Service A Service describes the specific services offered by an implementation of an OSLC specification. * *Name*: =Service= * *URI*: =http://open-services.net/ns/core#Service= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =oslc:domain= | exactly-one | True | Resource | Reference | n/a | Namespace URI of the specification that is implemented by this service. In most cases this namespace URI will be for an OSLC domain, but other URIs MAY be used. | | =oslc:creationFactory= | zero-or-many | True | Local Resource | n/a | [[#Resource_Creation_Factory][ =oslc:CreationFactory= ]] | Enables clients to create new resources | | =oslc:queryCapability= | zero-or-many | True | Local Resource | n/a | [[#Resource_Query_Capability][ =oslc:QueryCapability= ]] | Enables clients query across a collection of resources | | =oslc:selectionDialog= | zero-or-many | True | Local Resource | n/a | [[#Resource_Dialog][ =oslc:Dialog= ]] | Enables clients to select a resource via UI | | =oslc:creationDialog= | zero-or-many | True | Local Resource | n/a | [[#Resource_Dialog][ =oslc:Dialog= ]] | Enables clients to create a resource via UI | | =oslc:usage= | zero-or-many | True | Resource | Resource | n/a | An identifier URI for the domain specified usage of this service. If a service provider has multiple services, it may designate the primary or default one that should be used with a property value of =http://open-services.net/ns/core#default= | ---+++ Resource: Creation Factory A Creation Factory describes a creation factory, capable of creating new resources via HTTP POST. * *Name*: =CreationFactory= * *URI*: =http://open-services.net/ns/core#CreationFactory= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =dcterms:title= | exactly-one | True | XMLLiteral | n/a | n/a | Title string that could be used for display | | =oslc:label= | zero-or-one | True | String | n/a | n/a | Very short label for use in menu items | | =oslc:creation= | exactly-one | True | Resource | Reference | n/a | To create a new resource via the factory, post it to this URI | | =oslc:resourceShape= | zero-or-many | True | Resource | Reference | [[OSLCCoreSpecAppendixA#oslc_ResourceShape_Resource][ =oslc:ResourceShape= ]] | A Creation Factory *MAY* provide Resource Shapes that describe shapes of resources that may be created. | | =oslc:resourceType= | zero-or-many | True | Resource | Reference | n/a | The expected resource type URI of the resource that will be created using this creation factory. These would be the URIs found in the result resource's =rdf:type= property. | | =oslc:usage= | zero-or-many | True | Resource | Resource | n/a | An identifier URI for the domain specified usage of this creation factory. If a service provides multiple creation factories, it may designate the primary or default one that should be used with a property value of =http://open-services.net/ns/core#default= | ---+++ Resource: Query Capability A Query Capability describes a query capability, capable of querying resources via HTTP GET or POST. * *Name*: =QueryCapability= * *URI*: =http://open-services.net/ns/core#QueryCapability= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =dcterms:title= | exactly-one | True | XMLLiteral | n/a | n/a | Title string that could be used for display | | =oslc:label= | zero-or-one | True | String | n/a | n/a | Very short label for use in menu items | | =oslc:queryBase= | exactly-one | True | Resource | Reference | n/a | The base URI to use for queries. Queries are invoked via HTTP GET on a query URI formed by appending a key=value pair to the base URI, as described in Query Capabilities section. | | =oslc:resourceShape= | zero-or-one | True | Resource | Reference | n/a | The Query Capability *SHOULD* provide a Resource Shape that describes the query base URI. | | =oslc:resourceType= | zero-or-many | True | Resource | Reference | n/a | The expected resource type URI that will be returned with this query capability. These would be the URIs found in the result resource's =rdf:type= property. | | =oslc:usage= | zero-or-many | True | Resource | Reference | n/a | An identifier URI for the domain specified usage of this query capability. If a service provides multiple query capabilities, it may designate the primary or default one that should be used with a property value of =http://open-services/ns/core#default= | ---+++ Resource: Dialog A Dialog describes a delegated user interface (UI) which can be used to allow a user to interactively create a new resource or pick a resource. * *Name*: =Dialog= * *URI*: =http://open-services.net/ns/core#Dialog= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =dcterms:title= | exactly-one | True | XMLLiteral | n/a | n/a | Title string that could be used for display | | =oslc:label= | zero-or-one | True | String | n/a | n/a | Very short label for use in menu items | | =oslc:dialog= | exactly-one | True | Resource | Reference | n/a | The URI of the dialog | | =oslc:hintWidth= | zero-or-one | True | String | n/a | n/a | Values *MUST* be expressed in __relative length units__ as defined in the [[http://www.w3.org/TR/2009/CR-CSS2-20090423/syndata.html#length-units ][W3C Cascading Style Sheets Specification (CSS 2.1)]] Em and ex units are interpreted relative to the default system font (at 100% size). | | =oslc:hintHeight= | zero-or-one | True | String | n/a | n/a | Values *MUST* be expressed in __relative length units__ as defined in the [[http://www.w3.org/TR/2009/CR-CSS2-20090423/syndata.html#length-units ][W3C Cascading Style Sheets Specification (CSS 2.1)]] Em and ex units are interpreted relative to the default system font (at 100% size). | | =oslc:resourceType= | zero-or-many | True | Resource | Reference | n/a | The expected resource type URI for the resources that will be returned when using this dialog. These would be the URIs found in the result resource's =rdf:type= property. | | =oslc:usage= | zero-or-many | True | Resource | Reference | n/a | An identifier URI for the domain specified usage of this dialog. If a service provides multiple selection or creation dialogs, it may designate the primary or default one that should be used with a property value of =http://open-services/ns/core#default= | ---+++ Resource: Publisher A Publisher identifies and describes the software product that provides the OSLC implementation. * *Name*: =Publisher= * *URI*: =http://open-services.net/ns/core#Publisher= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =dcterms:title= | exactly-one | True | XMLLiteral | n/a | n/a | Title string that could be used for display | | =oslc:label= | zero-or-one | True | String | n/a | n/a | Very short label for use in menu items | | =dcterms:identifier= | exactly-one | unspecified | String | n/a | n/a | A URN that uniquely identifies the implementation | | =oslc:icon= | zero-or-one | True | Resource | reference | n/a | URL to an icon file that represents the provider. This icon should be a favicon format and 16x16 pixels in size | ---+++ Resource: Prefix Definition Service Providers *MUST* provide a Prefix Definition for each prefix supported by the service. Each Prefix Definition defines a namespace prefix that clients *MAY* use in forming OSLC Query Syntax strings. * *Name*: =PrefixDefinition= * *URI*: =http://open-services.net/ns/core#PrefixDefinition= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =oslc:prefix= | exactly-one | True | String | n/a | n/a | Namespace prefix to be used for this namespace | | =oslc:prefixBase= | exactly-one | True | Resource | Reference | n/a | The base URI of the namespace | ---+++ Resource: OAuth Configuration Service Providers that support OAuth Authentication *SHOULD* provide a way for clients to automatically discover the three OAuth URIs necessary to act as an OAuth Consumer. * *Name*: =OAuthConfiguration= * *URI*: =http://open-services.net/ns/core#OAuthConfiguration= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =oslc:oauthRequestTokenURI= | exactly-one | True | Resource | Reference | n/a | URI for obtaining OAuth request token | | =oslc:authorizationURI= | exactly-one | True | Resource | Reference | n/a | URI for obtaining OAuth authorization | | =oslc:oauthAccessTokenURI= | exactly-one | True | Resource | Reference | n/a | URI for obtaining OAuth access token | The next sections cover the Creation Factory and Query Capability in more detail. --- ---+ Creation Factories An OSLC Service can provide one or more creation factory to enable the creation of new resources. A creation factory provides a Creation URI used to create new resources via HTTP POST and may also provide Resource Shapes that describe the types of resources that may be created. To create a new OSLC Resource, an OSLC client POSTs a representation of that resource to a Creation Factory's Creation URI. * An HTTP POST of content to a Creation URI *SHOULD* result in the creation of a new resource or an explanation of why creation did not occur via the appropriate HTTP status code. * The response to a successful HTTP POST of content to a Creation URI *SHOULD* include a HTTP Location header that specifies the URI of the newly created resource. ---++ Creating an OSLC Defined Resource To create an OSLC Defined Resource, an OSLC Client first forms an representation of that resource including the desired and required property values. A client can learn what properties are allowed in a new OSLC Defined Resource via the OSLC specification that defines or, in some cases via a Resource Shape resource. Next the client uses HTTP POST to post that representation to a Creation URI. * The response to a successful HTTP POST of a representation to a Creation Resource URI *MAY* include a representation of the newly created resource. * The resource returned *MAY* contain changes to properties made by the server or new properties added by the server. ---+ Query Capabilities An OSLC Service may provide one or more Query Capabilities to enable query of resources. A Query Capability provides a base URI for forming Query Resource URIs and *MAY* provide Resource Shapes that describe the property values that may be expected in the resources that are queryable via the query capability. Thus, Query Capabilities provide a way to discover the resources managed by an OSLC Service. In a Query Capability, the base URI, as defined by the =oslc:queryBase= property, is itself a resource managed by the service and it acts as the starting subject resource for the queries based on it. Since the list may contain hundreds of thousands of members, queries are used to filter the list for members that satisfy certain conditions, e.g. the bugs that have high priority and were created this week. ---++ Conceptual Model To perform a query an OSLC client first creates a URI by starting with a Query Capability's base URI as a base and adding a URI Query String to express the query criteria. The OSLC client then uses HTTP GET to request a Query Resource representation of the query results. The Query Resource representation will contain property values about the query and a collection of resources that match the query criteria. ---++++ HTTP GET Queries To perform an HTTP GET query, an OSLC client starts with the base URI as defined by the =oslc:queryBase= property of a Query Capability, and appends to it query parameters in a syntax supported by the service. The resulting URI is the query URI. The OSLC client sends an HTTP GET request to the query URI, optionally specifying the preferred content media type for the query response in the HTTP Accept header. OSLC Services *MUST* support query responses in RDF/XML format (media type =application/rdf+xml=) and *MAY* support other formats. OSLC Services *SHOULD* support the Query Syntax defined in this specification, but *MAY* support other syntaxes. ---++ Query Syntax A query URI can be formed by adding a query string to the end of the Query Capability's base URI (or by sending the query string in the request body when using HTTP POST). The syntax used to express the query criteria in that string is specified by each OSLC domain specification. The [[OSLCCoreSpecQuery][OSLC Core Spec Query Specification]] document defines a standard set of OSLC query parameters that other OSLC domain specifications *MAY* use to query resources. ---+++ Query Specification errors If there is an error in the specification of the query, whether the query is specified by key=value pairs in the HTTP GET URL or key=value pairs in the body of an HTTP POST, then the provider *MUST* respond with an error. The error response should be an HTTP 400 Bad Request error and an explanation of the error in the OSLC Error Response format (see Error Responses below). --- ---+ Delegated User Interface Dialogs OSLC specifications target specific integration scenarios. In some cases, allowing one product to delegate to a user interface defined in another product is a more effective way to support a use case than an HTTP interface that can only be accessed programmatically. There are two cases where this is especially true: * *Resource creation*: when a user of a web application needs to create a new resource in an OSLC Service Provider. In this case the web application asks the service provider to provide a UI for resource creation and the provider notifies the application when the creation has been completed or canceled by the user. * *Resource selection*: when a user of a web application and needs to pick a resource managed by a OSLC Service Provider. In this case the web application asks the service provider to provide a UI for resource selection and the provider notifies the application when a resource or resources has been selected or if the selection was canceled. To support these two cases, below we define OSLC Delegated User Interface (UI) Dialogs. Delegated UI Dialogs are a technique where one provider can embed a creation or selection UI into another using a combination of an HTML &lt;iframe&gt; and !JavaScript code. The diagram below illustrates how delegated UI dialogs work in a scenario where Provider A wants to allow a user to select or create a resource managed by Provider B. *Figure #3: Delegated UI Dialog interactions* Next, the details of the Delegated UI Dialog protocol. ---+++ Terminology The following terms are used in discussions of Delegated UI Dialogs: * *UI Consumer* - a web application that is embedding a Delegated UI Dialog from an OSLC Service Provider. This consumer could be a web page, with the Delegated UI Dialog loaded into an iframe or a native application, e.g. an IDE like Eclipse, that is embedding a web browser component. * *UI Provider* - an OSLC Service provider that offers one or more Delegated UI Dialogs. These dialogs will be specified in the provider's Service Provider resource. The next sections explain how Delegated UI Dialogs work. ---++ Post Message and Window Name protocols To support the widest range of web browsers, we define two different protocols for communicating the information about the user's action from the UI Provider and back to the UI Consumer. These are the Post Message and Window Name protocols described below. In both the Post Message and Window Name protocols, the way that a UI Consumer includes a Delegated UI Dialog in an HTML page is to create an =iframe= and specify the =src= as the URI of the Delegated UI Dialog to be included. The UI Consumer indicates the protocol to be used by appending one of the two fragment identifiers below to the URI: * =#oslc-core-postMessage-1.0= - Indicates that the Post Message protocol is to be used * =#oslc-core-windowName-1.0= - Indicates that the Window Name protocol is to be used The !JavaScript code example below shows now a UI Provider can determine which protocol is in use: if (window.location.hash == '#oslc-core-windowName-1.0') { // Window Name protocol in use } else if (window.location.hash == '#oslc-core-postMessage-1.0') { // Post Message protocol in use } ---++++ iframe Creation Considerations Regardless of the protocol in effect, it is recommended that UI Consumers follow the below iframe creation guidelines to provide a more seamless user experience: * Embed the =iframe= within a =div= element, with height and width set based on the relative length values specified in the Service Resource that declares the Delegated UI Dialog. * Set the =iframe= border size to '0' * Set the =iframe= scrolling to 'auto' Next, the details for each of the two protocols. ---+++ Post Message Protocol The Post Message protocol relies on the HTML5 function =window.postMessage()= (reference: HTML5), available in the latest or pending releases of most browsers. UI Consumers must anticipate other, unrelated uses of postMessage(), and should ignore messages not conforming to this protocol. Typically, the embedded page will be loaded in a window inside another window, such as a iframe inside some surrounding webpage. In such cases, =postMessage()= must be called on that parent window. But in a native application, an outer page is not needed and the embedded page may be shown directly in the browser's "root" window. When the embedded page has no parent window, it must call =postMessage()= on its own window. Here are the responsibilities of the UI Consumer and UI Provider in Post Message protocol. ---++++ The UI Consumer's responsibilities 1 Include the Delegated UI Dialog via iframe (i.e setting iframe src to the URI of the Delegated UI Dialog) or via an embedded browser. Append the fragment identifier #oslc-core-postMessage-1.0 to the URL to indicate that Post Message is the desired protocol. 1 Add a 'message' listener to the outer window to receive messages from the Delegated UI Dialog. 1 Listen for window 'message' events, ignoring events from other sources or not prefixed with "oslc-response:" 1 When message from Delegated UI Dialog indicates user completed action, free resources and handle action. ---++++ The UI Provider's responsibilities 1 Provide Delegated UI Dialog, an HTML page that provides a user interface for resource creation or selection. 1 Allow the user to perform resource creation or selection. 1 Once the user has created, selected or canceled, send notification using =postMessage()= to the page's parent window, passed in =event.data= string, that is prefixed with "oslc-response:" See below for the two possible response formats, one for resource selection and one for creation. 1 If the page is not parented, then the message is posted to the page's own window. The page must ignore this message to itself. The below !JavaScript code example shows how a UI Provider page would send a response using =postMessage()= and taking into account the fact that some pages are not parented. function respondWithPostMessage(/*string*/ response) { (window.parent | window).postMessage("oslc-response:" + response, "*"); } Now, the Window Name protocol. ---+++ Window Name Protocol The Window Name protocol uses the HTML DOM =window.name= property to communicate the response (reference: Window Object) from the UI Provider to the UI Consumer. This special property of window maintains its value even as the window navigates to a different origin, but the ifame's =window.name= can only be read when the accessing window shares the same origin. For this to happen, when the embedded page is finished it must set the =window.name= and also change the =window.location= to a page with the same origin as the outer frame. This not only allows the UI Consumer to access the result, but also fires an event telling the UI Consumer when to do so. This return location is passed to the embedded page using the =window.name= property. Here are the responsibilities of the UI Consumer and UI Provider in Window Name protocol. ---++++ The UI Consumer's responsibilities 1 Include the Delegated UI Dialog via iframe (i.e setting iframe src to the URI of the Delegated UI Dialog) or via an embedded browser. Append the fragment identifier #oslc-core-windowName-1.0 to the URL to indicate that Window Name is the desired protocol. 1 On the iframe, set the frame's =window.name= to indicate the Return URL. 1 On the iframe, Listen for 'onload' events 1 When an 'onload' event occures an the frame's location is equal to the Return URL then read the response from the window.name. The following Javascript code illustrates the protocol. The code for the =destroyFrame()=, =handleMessage()= and =displayFrame()= methods are not provided in this example, but should be obvious to a !JavaScript developer. The UI Consumer must provide these methods. var pickerURL = ... // URL of Provider's Delegated UI Dialog var returnURL = ... // Consumer's Return URL var frame = document.createElement('iframe'); function windowNameProtocol() { // Step #1: create iframe with fragment to indicate protocol // Step #2: set the iframe's window.name to indicate the Return URL if (ie > 0) { frame = document.createElement(''); } else { frame = document.createElement('iframe'); frame.name = returnURL; } frame.src = pickerURL + '#oslc-core-windowName-1.0'; frame.width = 450; frame.height = 300; displayFrame(frame); // Step #3: listen for onload events on the iframe var ie = window.navigator.userAgent.indexOf("MSIE"); if (ie > 0) { frame.attachEvent("onLoad", onFrameLoaded); } else { frame.onload = onFrameLoaded; } } function onFrameLoaded() { try { // May throw an exception if the frame's location is still a different origin // Step #4: when frame's location is equal to the Return URL // then read response and return. if (frame.contentWindow.location == returnURL) { var message = frame.contentWindow.name; destroyFrame(frame); handleMessage(message); } } catch (e) { // ignore: access exception when trying to access window name } } ---++++ The UI Provider's responsibilities As soon as the embedded page has loaded, perform the following: 1 _Provide Delegated UI Dialog, an HTML page that provides a user interface for resource creation or selection._ 1 _Read the Return URL from the window.name variable_ 1 Allow user to perform resource creation or selection. 1 Once user has created, selected or canceled, communicate the user's response by setting the window.name variable to the response. See below for the two possible response formats, one for resource selection and one for creation. 1 Indicate that user has responded by setting the window.location to the Return URL specified by the UI Consumer. The !JavaScript example below shows a UI Provider notifying its UI Consumer after a user has responded. function respondWithWindowName(/*string*/ response) { // Step #2: read the return URL var returnURL = window.name; // Step #4: send the response via the window.name variable window.name = response; // Step #5: indicate that user has responded window.location = returnURL; } ---++ Resource Selection Resource Selection can be used when a UI Consumer wants to allow a user to pick a resource that is managed by an OSLC Service. Using either the Post Message or Window Name protocols defined above, the UI Consumer uses an iframe to embed a selection dialog that is provided by the service, then awaits notification that the user has selected a resource. To enable Resource Selection, an OSLC Service *MUST* provide in its Service Resource a value for the =oslc:selectionDialog= property. The property value will include a =oslc:dialogURI= property that indicates the URI of the selection dialog. Regardless of how the response from the UI Provider is conveyed to the UI Consumer, the response *SHOULD* be formatted as follows: * *Name:* =results= * *URI:* =http://open-services.net/ns/core#results= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =rdf:resource= | zero-or-one | True | Resource | Reference | n/a | URI of the resource selected or created | | =oslc:label= | zero-or-one | True | String | n/a | n/a | Short label describing the resource selected | An empty array indicates that the resource selector has been canceled An example Resource Selection response: { "oslc:results" : [{ "oslc:label": "Bug 123: Server crash", "rdf:resource": "http://example.com/bug123" }, { "oslc:label": "Bug 456: Client hangs on startup", "rdf:resource": "http://example.com/bug456" } ] } ---++ Resource Creation Resource Creation can be used when a UI Consumer wants to allow a user to create a new resource that is managed by an OSLC Service. Using either the Post Message or Window Name protocols defined above, the UI Consumer uses an iframe to embed a creation dialog that is provided by the service, then awaits notification that the user has created a resource. To enable Resource Creation, an OSLC Service *MUST* provide in its Service Resource a value for the =oslc:creationDialog= property. The property value will include a =oslc:dialogURI= property that indicates the URI of the creation dialog. Regardless of how the response from the UI Provider is conveyed to the UI Consumer, the response *SHOULD* be formatted as defined by =oslc:results= Example: { "oslc:results" : [ { "oslc:label": "Bug 123: Server crash", "rdf:resource": "http://example.com/bug123" }, { "oslc:label": "Bug 456: Client hangs on startup", "rdf:resource": "http://example.com/bug456" } ] } ---+++ Prefilling Creation Dialogs Service providers *MAY* support receiving a POST request whose content body is a resource representation to the Creation Dialog URI to retrieve a URI that represents the embedded page to be used. Service providers *MUST* respond with a response status of 201 (Created) with the response header =Location= whose value is the URI to request the newly created form. After some elapsed time, service providers *MAY* respond with a 404 (Not Found), 410 (Gone) or 3xx (Redirect) to an HTTP GET request for these URIs. ---++ Dialog Resizing Delegated UI dialogs receive their initial size (dimensions) based on the =oslc:hintWidth= and =oslc:hintHeight= properties described in =oslc:Dialog= resource description. There are cases where UI Provider recognizes that the initial size of a Delegated UI dialog is not sufficient and needs a way to ask the UI Consumer to resize the dialog. In this section we specify a mechanism that enables dialog resizing, but only when Post Message Protocol is used. Consumers *MAY* honor a dialog's ability to dynamically resize. Those that do (a) *MUST* use Post Message Protocol, (b) *MUST* use the =oslc:resize= value instead of any static width or height, and and (c) *MUST* register a handler to receive dialog resize messages sent by the dialog Provider and adjust the size of the dialog accordingly. Since a dialog is allowed to resize itself any number of times, the Consumer *MUST* keep a handler registered and react appropriately each time it received a dialog resize message from that dialog. UI Providers *SHOULD NOT* request sizes larger than 95% of the current [[http://www.w3.org/TR/CSS2/visuren.html#viewport][viewport]], to avoid covering the entire viewport with the dialog. Here are the responsibilities of the UI Consumer and UI Provider in dialog resizing. ---+++ The UI Consumer's responsibilities 1 Include the Delegated UI Dialog via iframe (i.e setting iframe src to the URI of the Delegated UI Dialog) or via an embedded browser. 1 Add a 'message' listener to the outer window to receive messages from the Delegated UI Dialog. 1 Listen for window 'message' events, ignoring events from other sources or not prefixed with "oslc-resize:". Multiple resize 'message' events may be sent while the dialog is visible. 1 When message from Delegated UI Dialog indicates user completed action, free resources and handle action. ---+++ The UI Provider's responsibilities 1 Provide Delegated UI Dialog, an HTML page that provides a user interface for resource creation or selection. 1 Allow the user to perform resource creation or selection. 1 Once the Provider needs to resize the dialog, send notification using =postMessage()= to the page's parent window, passed in =event.data= string, that is prefixed with "oslc-resize:". Multiple resize messages may be sent. See below for the response format. 1 If the page is not parented, then the message is posted to the page's own window. The page must ignore this message to itself. The below !JavaScript code example shows how a UI Provider page would send a response using =postMessage()= and taking into account the fact that some pages are not parented. function respondWithPostMessage(/*string*/ resize_response) { (window.parent | window).postMessage("oslc-resize:" + resize_response, "*"); } Regardless of how the response from the UI Provider is conveyed to the UI Consumer, the response *SHOULD* be formatted as follows: | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =oslc:hintHeight= | exactly-one | True | String | n/a | n/a | New dialog height size. Height size *MUST* be expressed in __relative length units__ as defined in the [[http://www.w3.org/TR/2009/CR-CSS2-20090423/syndata.html#length-units ][W3C Cascading Style Sheets Specification (CSS 2.1)]] Em and ex units are interpreted relative to the default system font (at 100% size) | | =oslc:hintWidth= | exactly-one | True | String | n/a | n/a | New dialog width size. Width size *MUST* be expressed in __relative length units__ as defined in the [[http://www.w3.org/TR/2009/CR-CSS2-20090423/syndata.html#length-units ][W3C Cascading Style Sheets Specification (CSS 2.1)]] Em and ex units are interpreted relative to the default system font (at 100% size) | An example Dialog Resize response with new height of '600px' and a width of '400px': { "oslc:hintHeight" : "600px", "oslc:hintWidth" : "400px" } That brings us to the end of the Delegated UI section. Next up, another UI related topic. --- ---+ User Interface Previews OSLC providers *MAY* support a technique known as User Interface (UI) Preview, that can be used to show a user in-context information when displaying a link to a resource, and to show more information when the user's mouse lingers over the link. OSLC providers which offer UI Preview *MUST* do so in accordance with the [[OslcCoreUiPreview][OSLC Core UI Preview Specification]]. --- ---+ Authentication OSLC Services use standard web protocols for authentication. OSLC Services can use HTTP Basic Authentication, OAuth or both. ---++ HTTP Basic Authentication OSLC Services *MAY* protect resources with HTTP Basic Authentication. OSLC Services that use HTTP Basic Authentication *SHOULD* do so only via SSL. ---++ OAuth Authentication OSLC Services *MAY* protect resources with OAuth Authentication. ---++ Form Based Authentication OSLC Services *MAY* use other authentication mechanisms, including those common described as Form Based Authentication. OSLC Services that choose to use other authentication mechanisms are responsible for specifying how those mechanisms work. --- ---+ Error Responses OSLC Services the standard mechanisms of HTTP to report status and error codes to clients. When an error occurs and useful information can be provided to clients OSLC Services *SHOULD* return error information in the body of the response. OSLC Services *SHOULD* use the Error resource defined below as the basis for forming error responses. OSLC Services *SHOULD* return an Error resource using the same representation requested by the client via the HTTP Accept header. ---++ Conceptual Model The following OSLC Defined Resource can be used as the basis for forming an error response. ---+++ Resource: Error * *Name*: =Error= * *URI*: =http://open-services.net/ns/core#Error= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =oslc:statusCode= | exactly-one | True | String | n/a | n/a | The HTTP status code reported with the error. | | =oslc:message= | exactly-one | True | String | n/a | n/a | An informative message describing the error that occurred. | | =oslc:extendedError= | zero-or-one | True | Either | Either | =oslc:ExtendedError= | Extended error information | ---+++ Resource: Extended Error * *Name*: =ExtendedError= * *URI*: =http://open-services.net/ns/core#ExtendedError= | *Prefixed Name* | *Occurs* | *Read-only* | *Value-type* | *Represen-tation* | *Range* | *Description* | | =oslc:moreInfo= | zero-or-one | True | Resource | Reference | Any | A resource giving more information on the error *SHOULD* be of an HTML content-type. | | =oslc:rel= | zero-or-one | True | String | n/a | n/a | If present and set to 'alternate' then indicates that work-around is provided, behavior for other values is undefined. | | =oslc:hintWidth= | zero-or-one | True | String | n/a | n/a | Values *MUST* be expressed in __relative length units__ as defined in the [[http://www.w3.org/TR/2009/CR-CSS2-20090423/syndata.html#length-units ][W3C Cascading Style Sheets Specification (CSS 2.1)]] Em and ex units are interpreted relative to the default system font (at 100% size). | | =oslc:hintHeight= | zero-or-one | True | String | n/a | n/a | Values *MUST* be expressed in __relative length units__ as defined in the [[http://www.w3.org/TR/2009/CR-CSS2-20090423/syndata.html#length-units ][W3C Cascading Style Sheets Specification (CSS 2.1)]] Em and ex units are interpreted relative to the default system font (at 100% size). | --- ---+ Specification Versioning One of the goals of the OSLC initiative is to mitigate or eliminate the need for lock-step version upgrades, where clients or services target one version of a specification and break when new versions are introduced -- requiring all services to be upgraded simultaneously. In this section we specify a version header that will enable old "Version 1" OSLC clients to continue to work and share the same resource URIs as used by clients that specifically target the Core. And we establish rules that will enable clients to continue to work as new versions of specifications are introduced. ---++ Supporting pre-Core clients We anticipate that the OSLC Core and domain specifications will each be versioned independently and each version will be assigned a version number, but we would like to avoid exposing version numbers in OSLC implementations. There is one use case that requires version information to be exposed. We must ensure that old OSLC "Version 1" clients continue to work. To enable OSLC Service specifications to evolve without breaking existing clients, we introduce an HTTP Header, =OSLC-Core-Version= set to the Core specification version number ="2.0"=. We expect clients that target the Core to send this HTTP header. * If the =OSLC-Core-Version= header is present and set to a version that the service can support, then the service *MUST* return a representation that is complies with the specified version. * If the =OSLC-Core-Version= header is present and indicates a specification version that the service cannot support, the service *SHOULD* respond with what it determines is the most compatible version that it can return. * If the =OSLC-Core-Version= header is not present then the OSLC Service *SHOULD* respond by returning a resource that conforms to the earliest or most compatible (as determined by the implementation) specification version's representation. Services that never offered an OSLC Version 1 interface can ignore this restriction. * When returning an OSLC Defined Resource, OSLC Services *MUST* return the =OSLC-Core-Version= header set to the Core specification with which the representation complies. ---++ Rules for new versions of OSLC specifications When specifying a new version of an OSLC specification the rule is this: *A new version of an OSLC specification is not allowed to introduce changes that will break old clients.* Here are some guidelines for OSLC workgroups defining new specifications or upgrades to existing ones: * If you believe that you need a property but cannot agree on the value-type, then this is a strong indication that you should not attempt to standardize on the property. Once you decide on a value-type you are stuck with it forever. Wait until you have the scenarios or implementation experience needed to agree on type. * When introducing a new capability in a new version of a specification, e.g. a creation factory, query capability or delegated UI dialog; one that works differently than those specified in the Core spec or older versions of your own specification, you should create a new resource type to represent the service. This will enable old clients to continue to work against old services and new clients to work with your new capabilities. * When defining resources, do not remove, change the meaning or the value-type of any properties that you defined in earlier versions of the specification. You can add new properties but not change those that already exist. * It is possible to relax restrictions on clients, because relaxing restrictions should not break clients. But it is not possible to relax restrictions on services, because clients expect to find the required fields and if they are missing, clients will break. * Before defining a new property within your OSLC domain's namespace consult the list of common properties in [[OSLC Core Spec Appendix A]] to see if using a common property would be more appropriate. ---++ Migrating to the Core Specification Most of the first OSLC specifications were developed before this Core specification existed and do not implement versioning as described above and so must use some other mechanism to migrate to the OSLC Core v1.0 specification. OSLC implementations that wish to continue to support old pre-Core OSLC or OSLC v1.0 specifications can do so by keeping the old implementation in place and adding the new OSLC Core v1 implementation with different service provider, query capability and creation factory URIs. --- ---+ OSLC Defined Resource Representations This section specifies what resource representations are required for OSLC resources, some requirements for providing representations and some rational for the requirement that OSLC Services provide RDF/XML representations. OSLC resource representations come in many forms and are subject to standard HTTP mechanisms for content negotiation. OSLC domain specifications (1) *SHOULD* require the representations needed for the specific scenarios that they are addressing and (2) *SHOULD* recognize that different representations are appropriate for different purposes. For example, browser oriented scenarios might be best addressed by JSON or Atom format representations. For these reasons, OSLC Services *MAY* provide and accept standard or emerging standard formats such as XML, JSON, HTML, Turtle and the Atom Syndication Format. OSLC domain specifications are also expected to follow common practices and conventions that are in concert with existing industry standards and offer consistency across domains. All of the OSLC specifications are built upon the standard RDF data model, allowing OSLC to align with the W3C's Linked Data initiative. In addition, all OSLC specifications have adopted the convention to illustrate RDF/XML representations and will typically require RDF/XML representations to enable consistency across OSLC implementations. For those reasons, OSLC Services *SHOULD* provide and accept RDF/XML representations for each OSLC resource. Though the OSLC Core workgroup does provide guidance on how to form RDF/XML representations using a subset of RDF/XML (reference: [[OSLCCoreSpecAppendixRepresentations][Appendix B - Representation Guidance and Examples]]), OSLC clients *SHOULD NOT* assume any specific form of RDF/XML. It is *RECOMMENDED* that OSLC Services also provide an HTML representation for each resource. ---+++ Use standard content-types Note that existing standard content-types are used, e.g. =application/rdf+xml= and =application/json=, in this document and no new content-types are introduced (except for the one introduced in the [[OslcCoreUiPreview][UI Preview specification]]). Those writing OSLC specifications are strongly encouraged to follow this pattern -- use standard and existing content-types and avoid inventing new content-types for existing formats. In past OSLC specifications we defined a specific RDF/XML format for each resource defined and gave each its own content-type. This implied to consumers that each resource had a different format when in reality they were all standard RDF/XML. Using different content-types makes it more difficult to write generic tools, crawlers and other services that work across all data. ---+++ Order of property values insignificant This specification defines how OSLC property values are to be represented in a variety of formats. Except in the case of a sorted Query Response, the ordering of property values is insignificant. OSLC clients and service providers *MUST* not place any significance on the ordering of property values in representations. ---+++ Use Absolute URIs OSLC representations *MUST* use absolute URIs in all cases except XML representations, where the =xml:base= attribute may be used to allow relative URIs to be resolved to absolute form (reference: XML Base). Before a resource representation that uses xml:base is posted to an OSLC Service for creation, it may include relative URIs that cannot be resolved until the OSLC Service has received, created and assigned a URI to the new resource. ---+ Appendix A: Common Properties and Resources See separate page [[OSLC Core Spec Appendix A]] ---+ Appendix B: Representation Guidance and Examples See separate page [[OSLCCoreSpecAppendixRepresentations][OSLC Core Spec Appendix B]] ---+ Appendix C: Guidance on Links and Relationships See separate page [[OslcCoreSpecAppendixLinks][OSLC Core Spec Appendix C]] ---+ Appendix D: References These are the specifications referenced by the OSLC Core Specification. * BNF [[http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form][Backus-Naur Form]] * CSS 2.1 - [[http://www.w3.org/TR/2009/CR-CSS2-20090908/][Cascading Style Sheets Level 2 Revision 2 v2.1]] * Dublin Core 1.1 - [[http://dublincore.org/documents/2010/10/11/dces/][Dublin Core Metadata Element Set, Version 1.1]] * FOAF - [[http://xmlns.com/foaf/spec/20100809.html][Friend of a Friend (FOAF) v0.98]] * HTML5 Posting Message- [[http://www.w3.org/TR/html5/comms.html#posting-messages][ W3C HTML5 postMessage]] * HTTP 1.1 - [[http://tools.ietf.org/html/rfc2616][Hyper-text Transfer Protocol (HTTP/1.1)]] * OAuth 1.0a - [[http://tools.ietf.org/html/rfc5849][RFC5849 - The OAuth 1.0 Protocol]] * RDF/XML Concepts - [[http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/][RDF/XML Concepts and Abstract Syntax]] * RDF/XML Syntax - [[http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/][RDF / XML Syntax Specification (Revised)]] * Turtle - [[http://www.w3.org/TeamSubmission/turtle/]] * URI Syntax - [[http://tools.ietf.org/html/rfc3986][URI Generic Syntax]] * Window Object - [[http://www.w3.org/TR/Window/#window-embedding][Window Object 1.0 Window.name]] * XML Namespaces - [[http://www.w3.org/TR/REC-xml-names/][Namespaces in XML 1.0 (Third Edition)]] * XML Base - [[http://www.w3.org/TR/xmlbase/][XML Base (Second Edition)]] * XSD Datatypes - [[http://www.w3.org/TR/xmlschema-2][XML Schema Part 2: Datatypes Second Edition]]

OSLC Vocabularies

Introduction The purpose of this page is to provide a single index of all the vocabulary documents on the OSLC website. Not all these vocabularies are from OASIS Standards. Some are references to current OSLC v2.0 domain specifications that have not yet been migrated to OASIS. Others are still under development and may change. Consult the corresponding specification to learn about its status. The process by which the domain namespaces are mapped to the RDF Schema and HTML documents is documented in the following documents: OSLC Core URI Naming Guidance Best Practice Recipes for Publishing RDF Vocabularies OSLC Core 3.0 Part 1: Overview specificationResource Constraints The namespace for each domain is defined in the domain specification. OSLC version compatibility guidelines specify that updated OSLC vocabularies should be backward compatible. That is, classes and properties can be added, or deprecated (archaic), but may not be changed or removed. Resource shapes on the other hand can be created to constrain these vocabularies for whatever purpose is needed, including the needs of the OSLC specifications themselves. As a result, new vocabularies published on this site should be compatible with the old vocabularies. Therefore, only the most recent version of the vocabularies are listed here, and linked to by the various OSLC core and domain namespace URIs. Standard Namespaces OSLC Core | Property | Value | | ----------------------: | :---------------------------------| | Deployed vocabulary | Core 2.0 Final | | Publication date | 30 May 2013 | | Status | span style="color: #2ecc71"ACTIVE/span| | Recommended prefix |oslc | | Namespace URI |http://open-services.net/ns/core#| | Turtle prefix |@prefix oslc: http://open-services.net/ns/core#| | SPARQL prefix |PREFIX oslc: http://open-services.net/ns/core# | | OSLC Query prefix |oslc%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fcore%23 | | Specified Vocabulary| Core 2.0 Final vocabulary | OSLC Change Management | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | CM 2.0 Final | | Publication date | 19 November 2010 (errata 03 October 2013) | | Status | span style="color: 2ecc71"ACTIVE/span | | Recommended prefix |oslc_cm | | Namespace URI |http://open-services.net/ns/cm# | | Turtle prefix |@prefix oslc_cm: http://open-services.net/ns/cm#| | SPARQL prefix |PREFIX oslc_cm: http://open-services.net/ns/cm# | | OSLC Query prefix |oslc_cm%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fcm%23 | | Specified Vocabulary| CM 2.0 Final vocabulary | OSLC Requirements Management | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | RM 2.0 Final | | Publication date | 21 September 2012 | | Status | span style="color: 2ecc71"ACTIVE/span| | Recommended prefix |oslc_rm | | Namespace URI |http://open-services.net/ns/rm# | | Turtle prefix |@prefix oslc_rm: http://open-services.net/ns/rm#| | SPARQL prefix |PREFIX oslc_rm: http://open-services.net/ns/rm# | | OSLC Query prefix |oslc_rm%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Frm%23 | | Specified Vocabulary| RM 2.0 Final vocabulary | OSLC Quality Management | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | QM 2.0 Final | | Publication date | 26 May 2011 | | Status | span style="color: 2ecc71"ACTIVE/span| | Recommended prefix |oslc_qm | | Namespace URI |http://open-services.net/ns/qm# | | Turtle prefix |@prefix oslc_qm: http://open-services.net/ns/qm#| | SPARQL prefix |PREFIX oslc_qm: http://open-services.net/ns/qm# | | OSLC Query prefix |oslc_qm%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fqm%23 | | Specified Vocabulary| QM 2.0 Final vocabulary | OSLC Configuration Management | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | CfgM 1.0 WD 01 (14 September 2019) | | Status | span style="color: f1c40f"DRAFT/span | | Recommended prefix |oslc_config | | Namespace URI |http://open-services.net/ns/config# | | Turtle prefix |@prefix oslc_config: http://open-services.net/ns/config#| | SPARQL prefix |PREFIX oslc_config: http://open-services.net/ns/config# | | OSLC Query prefix |oslc_config%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fconfig%23 | | Specified Vocabulary| CfgM 1.0 WD 01 vocabulary | OSLC Architecture Management | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | AM 2.0 Final | | Publication date | 04 August 2011 (errata 10 September 2012) | | Status | span style="color: 2ecc71"ACTIVE/span| | Recommended prefix |oslc_am | | Namespace URI |http://open-services.net/ns/am# | | Turtle prefix |@prefix oslc_am: http://open-services.net/ns/am#| | SPARQL prefix |PREFIX oslc_am: http://open-services.net/ns/am# | | OSLC Query prefix |oslc_am%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fam%23 | | Specified Vocabulary| AM 2.0 vocabulary | OSLC Asset Management | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | Asset 2.0 Final | | Publication date | 25 September 2012 | | Status | span style="color: 2ecc71"ACTIVE/span| | Recommended prefix |oslc_asset | | Namespace URI |http://open-services.net/ns/asset# | | Turtle prefix |@prefix oslc_asset: http://open-services.net/ns/asset#| | SPARQL prefix |PREFIX oslc_asset: http://open-services.net/ns/asset# | | OSLC Query prefix |oslc_asset%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fasset%23 | | Specified Vocabulary| Asset 2.0 vocabulary | OSLC Automation | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | Automation 2.0 Final | | Publication date | 22 January 2013 (errata 17 July 2014) | | Status | span style="color: 2ecc71"ACTIVE/span| | Recommended prefix |oslc_auto | | Namespace URI |http://open-services.net/ns/auto# | | Turtle prefix |@prefix oslc_auto: http://open-services.net/ns/auto#| | SPARQL prefix |PREFIX oslc_auto: http://open-services.net/ns/auto# | | OSLC Query prefix |oslc_auto%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fauto%23 | | Specified Vocabulary| Automation 2.0 vocabulary | OSLC Performance Monitoring | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | Performance Monitoring 2.0 Final | | Publication date | 31 January 2014 | | Status | span style="color: 2ecc71"ACTIVE/span | | Recommended prefix |pm | | Namespace URI |http://open-services.net/ns/perfmon# | | Turtle prefix |@prefix pm: http://open-services.net/ns/perfmon#| | SPARQL prefix |PREFIX pm: http://open-services.net/ns/perfmon# | | OSLC Query prefix |pm%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fperfmon%23 | | Specified Vocabulary| PerfMon 2.0 vocabulary | Linked Data Basic Profile | Property | Value | | ----------------------: | :----------------------------------------------| | Status | span style="color: e74c3c"OBSOLETE/span| | Recommended prefix | ldbp | | Namespace URI | http://open-services.net/ns/basicProfile# | | See | https://www.w3.org/TR/ldp/ | [core]: https://archive.open-services.net/bin/view/Main/OslcCoreSpecification.html [cm]: https://archive.open-services.net/bin/view/Main/CmSpecificationV2.html#CMResourceDefinitions [rm]: https://archive.open-services.net/bin/view/Main/RmSpecificationV2.html#RMResourceDefinitions [qm]: https://archive.open-services.net/bin/view/Main/QmSpecificationV2.html#QMResourceDefinitions [config]: https://oslc-op.github.io/oslc-specs/specs/config/config-vocab.html [am]: https://archive.open-services.net/wiki/architecture-management/OSLC-Architecture-Management-Specification-Version-2.0/index.html#AM-Resource-Definitions [asset]: https://archive.open-services.net/wiki/asset-management/OSLC-Asset-Management-2.0-Specification/index.html#OSLC-Asset-Management-Resource-Definitions [auto]: https://archive.open-services.net/wiki/automation/OSLC-Automation-Specification-Version-2.0/index.html#Automation-Resource-Definitions NB! All namespace URIs support content negotiation. Acceptable RDF MIME types: - text/turtle - application/ld+json - application/rdf+xml - application/n-triples Other OSLC Namespaces This could include: Old open-services.net documents and vocabulary namespaces that were never completed. Existing open-services.net documents and vocabularies that were at least partially completed, but are not currently targeted for migration to OASIS. New experimental domains that the OSLC community might find useful Namespaces used by existing tool implementations that should be preserved In order to foster open integration, we will allow additional domain vocabularies (ontology) and resource shapes to be published on open-services.net. The open-services.net administrator will review these vocabularies and publish them upon community request. These will be listed in the following table to help interested parties know what namespace names people are working on in order to avoid potential collisions. OSLC Estimation and Measurement | Property | Value | | ----------------------: | :----------------------------------------------| | Deployed vocabulary | Estimation and Measurement 1.0 Draft | | Publication date | 24 September 2014 | | Status | span style="color: #f1c40f"DRAFT/span | | Recommended prefix |ems | | Namespace URI |http://open-services.net/ns/ems# | | Turtle prefix |@prefix ems: http://open-services.net/ns/ems#| | SPARQL prefix |PREFIX ems: http://open-services.net/ns/ems# | | OSLC Query prefix |ems%3Dhttp%3A%2F%2Fopen-services.net%2Fns%2Fems%23 | | Specified Vocabulary| EMS 1.0 vocabulary | [ems]: https://archive.open-services.net/wiki/estimation-and-measurement/EMS-1.0-REST-API-Data-Model/index.html Unpublished vocabularies crvt: Common IT Resource Type Vocabulary Version 2.0 promcode: OSLC PROMCODE Specification Version 1.0

Why OSLC?

As a newcomer to the OSLC community, you might have been pondering over one question, but too shy to ask it aloud: Why should I invest my time and effort into OSLC? Great that you asked! There are many good reasons for you to embrace OSLC and the specific reasons depend on your role. If you are... .. a Tool Vendor As a tool vendor, you need to ensure that your customers can integrate your product with other tools in order to extract the most value from your product. While providing a REST API is a norm nowadays, a developer has to build an integration layer. As every REST API is different, it means extra time reading the documentation, extra time developing plumbing code to perform model transformation, and most importantly, all this needs to be done on a case basis, leading to point-to-point integrations. OSLC allows you to provide: a uniform self-descriptive REST API; a linked data model based on standard domains, common in ALM/PLM (RM, QM, CCM, etc.), that you can tailor to your product; exchange data in plain JSON with the clients that are not linked-data ready; provide rich UIs from your tool for use in 3rd-party tools for seamless linked data workflow; and many other features that your customers would appreciate. A number of other products used in ALM/PLM already implement OSLC and your OSLC-enabled tool can integrate with many of them without extra development effort. .. a Tool Buyer As a tool buyer, you have a unique set of requirements towards your toolchain and for many reasons (technical, organisational, financial) a single-vendor solution might not be viable for you. Therefore, one of the most important criteria for procurement of the new software tools is their TCO including the integration costs. Most of the tools come with semi-open proprietary APIs that often lack documentation. Those APIs will incur considerable development costs, often involving highly specialised consultants with a deep knowledge of the tool in question. Tools that come with an OSLC-based API will you to integrate them into your toolchain with less (or none, in many cases) development effort, while performing a deeper integration, at the workflow level. OSLC reduces the complexity and risk of increasingly complex software infrastructures, and improves the value of software across a broader set of internal and external stakeholders. OSLC-based API is an experience truly free from a vendor lock-in. .. a Tool User As a tool user, you have to switch between a plethora of tools on a daily basis. You often don't see how their integration is done, but you feel that it's done poorly: updates showing up in other tools many hours later, integrations getting broken every other tool update, etc. Well-implemented OSLC integrations mostly remain backwards-compatible even across major releases. Standardised OSLC APIs often allow vendors to provide a fully supported integration with many other OSLC-compliant tools out of the box. Finally, an OSLC integration can be performed not only at the level of two tool data models, but at the level of your workflow involving those tools. This is possible through the use of delegated UIs, which allow you to interact with another OSLC-compatible tool without leaving your current open tool!

Open Services for Lifecycle Collaboration © is an OASIS Open Project. All Rights Reserved. OASIS trademark, IPR, Privacy, and other policies apply. Contact OASIS for details. Contributions to the OSLC Open Project are governed by OASIS Contributor License Agreements.