Abstract

This documents presents an early draft of an straw-man specification for an RDF(S) Ontology Access mechanism built as a WS-DAI realization.

The realization briefly described in this document is part of the DAIS RDF(S) Access initiative, therefore some of the concepts described within this pages will have to be harmonized with the concepts and terminology described in the other part of the initiative, the RDF Query Access part.

Please consider this work as what it is, work under development. Feedback is welcomed.

Introduction

TO DO

Specification Scope

TO DO

Specification Organisation

TO DO

Interface Composition

TO DO

Notational Conventions

TO DO

Terminology

TO DO

RepositorySelector Data Resource

The 'RepositorySelector' data resource is a container of repositories which are managed by the same RDF(S) storage manager.

Repository Data Resource

The 'repository' data resource is a container of RDF(S) resources, which are made up of RDF triples and organized in RDF graphs.

Resource Data Resource

The 'Resource' data resource is a place holder of an specific RDF(S) resource defined in a repository. While linked to the parent data resource, the data resource provides a view to the data centered in the information that is directly related to the resource.

Class Data Resource

The 'Class' data resource is a place holder of an specific RDF(S) class defined in a repository. While linked to the parent data resource, the data resource provides a view to the data centered in the information that is directly related to the class, specially the class hierarchy, the properties and instances related to the class.

Property Data Resource

The 'Property' data resource is a place holder of an specific RDF(S) property defined in a repository. While linked to the parent data resource, the data resource provides a view to the data centered in the information that is directly related to the property, specially the property hierarchy, the classes and values related to the property.

Statement Data Resource

The 'Statement' data resource is a place holder of an specific RDF(S) statement defined in a repository. While linked to the parent data resource, the data resource provides a view to the data centered in the information that is directly related to the statement. Statements are RDF(S) constructs that resemble RDF triples, therefore statements are composed of subjects, predicates and objects

List Data Resource

The 'List' data resource is a place holder of an specific RDF(S) container defined in a repository. While linked to the parent data resource, the data resource provides a view to the data centered in the information that is directly related to the list. Lists are collections of elements. The lists are organized in nodes, linked one to another. Each node can have members attached to them. These members can be literals or resources. The members and nodes are linked by means of special RDF(S) properties (rdf:first, rdf:rest).

Container Data Resource

The 'Container' data resource is a place holder of an specific RDF(S) container defined in a repository. While linked to the parent data resource, the data resource provides a view to the data centered in the information that is directly related to the container. Containers have members attached to them. The members can be literals or resources. The members are linked to the containers by means of special RDF(S) properties (subproperties of rdfs:member and instances of rdfs:ContainerMembershipProperty).

Alt Data Resource

The 'Alt' data resource is a place holder of an specific RDF(S) alt container defined in a repository. While linked to the parent data resource, the data resource provides a view to the data centered in the information that is directly related to the alt container.

Concepts

TO DO

X Interfaces

TO DO

Relationships with other Specifications

TO DO

RepositorySelector

Static RepositorySelector Description

TO DO

Configurable RepositorySelector Description

TO DO

Example RepositorySelectorPropertyDocument

TO DO

EXAMPLE CODE TO DO

RepositorySelector

This interface provides the functionalities for managing the repositories that are under control of the RDF(S) storage manager.

Figure X - Overview - RepositorySelector

RepositorySelector::GetRepositoryList

This operation retrieves the list of repositories that are available.

Input

Output

Faults

No faults are defined for this message.

RepositorySelector::GetRepositoryContents

This operation retrieves the contents of the specified repository, serialized in RDF/XML.

Input

Output

Faults

No faults are defined for this message.

RepositorySelector::AddRepository

This operation adds a new repository (serialized in RDF/XML), and puts it under the control of the data service.

Input

Output

Faults

No faults are defined for this message.

RepositorySelector::RemoveRepository

This operation removes a repository from the control of the data service.

Input

Output

Faults

No faults are defined for this message.

RepositorySelectorFactory

This factory interface defines the mechanisms needed for creating relationships between concrete repositories of the repository selector and the services by which they can be accesed using the Repository and RepositoryFactory interfaces.

Figure X - Overview - RepositorySelectorFactory

RepositorySelectorFactory::GetRepositoryFactory

The operation creates a new data access service that corresponds to the specified repository. The data service created will implement the Repository and the RepositoryFactory interfaces.

Input

Output

Faults

Repository

Static Repository Description

TO DO

Configurable Repository Description

TO DO

Example RepositoryPropertyDocument

TO DO

EXAMPLE CODE TO DO

Repository

The interfaces provides the basic messages needed for managing the contents of an specific repository at resource level. The messages defined provide the mechanisms needed for creating new resources, removing existing resources and retrieving the URIs of existing resources.

Figure X - Overview - Repository

Repository::GetRepositoryId

Retrieve the identificator of the repository.

Input

Output

Faults

No faults are defined for this message.

Repository::GetResources

The operation retrieves the URIs of the resources defined in the repository that are of a given RDF(S) built-in type. If the type is not specified, all the resources defined in the repository will be retrieved.

Input

Output

Faults

No faults are defined for this message.

Repository::AddResource

This operation adds a new resource to the repository, this is, creates a new resource in the repository.

Input

Output

Faults

No faults are defined for this message.

Repository::RemoveResourceByURI

The operation informs the repository to remove the resources whose URI is specified in the request.

Input

Output

Faults

No faults are defined for this message.

Repository::RemoveResourcesByType

The operations removes all the resources of the repository which are of the RDF(S) built-in type specified in the request.

Input

Output

Faults

No faults are defined for this message.

RepositoryFactory

This factory interface defines the mechanisms needed for creating relationships between concrete resources of the repository (attending to their specific nature) and the services by which they can be accesed using specific interfaces.

Figure X - Overview - RepositoryFactory

RepositoryFactory::GetResourceFactory

The operation creates a new data access service that corresponds to the specified resource. The data service created will implement different access interfaces according to the nature of the resource (which is also specified in the request).

Input

Output

Faults

Resource

Static Resource Description

TO DO

Configurable Resource Description

TO DO

Example ResourcePropertyDocument

TO DO

EXAMPLE CODE TO DO

Resource

This interface provides access methods centered in a particular RDF resource of a repository. There are two groups of methods. On the one hand there is a set of methods for managing the values associated to the main built-in properties defined for the Resource class in the RDF model (rdf:type, rdfs:label, rdfs:comment); on the other hand, a set of general purpose methods is defined. These methods provide CRUD/BREAD functionalities for dealing with the RDF model, using the Resource class (specifically the concrete resource represented by the service) as the center of the model.

Figure X - Overview - Resource

Resource::GetTypes

The operation retrieves the URIs of the RDF(S) classes that are parents of the resource, traversing the whole class hierarchy if required.

Input

Output

Faults

No faults are defined for this message.

Resource::GetLabels

This operation retrieves the labels that are defined for the resource.

Input

Output

Faults

No faults are defined for this message.

Resource::GetComments

The operation retrieves all the comments defined for the resource.

Input

Output

Faults

No faults are defined for this message.

Resource::AddType

The operation adds a (set of) type(s) to the resource. The type is identified via its URI.

Input

Output

Faults

No faults are defined for this message.

Resource::AddLabel

The operation adds a (set of) label(s) to the resource.

Input

Output

Faults

No faults are defined for this message.

Resource::AddComment

The operation adds a (set of) comment(s) to the resource.

Input

Output

Faults

No faults are defined for this message.

Resource::RemoveType

The operation removes the specified types defined for the resource. If no types are specified, all the types defined for the resource will be removed. In no case the class resources that define the specified types are removed from the repository.

Input

Output

Faults

No faults are defined for this message.

Resource::RemoveLabel

The operation removes the specified labels defined for the resource. If no labels are specified, all the labels defined for the resource will be removed.

Input

Output

Faults

No faults are defined for this message.

Resource::RemoveComments

The operation removes the specified comments defined for the resource. If no comments are specified, all the comments defined for the resource will be removed.

Input

Output

Faults

No faults are defined for this message.

Resource::GetDefinedProperties

The operation retrieves the URIs of the properties which are defined for the resource, that is, those properties which are the predicate of a statement which has the resource as subject.

Input

Output

Faults

No faults are defined for this message.

Resource::GetDefinableProperties

The operation retrieves the list of properties that might be defined for this resource, that is, those properties which have as domain a class that is a parent of the resource.

Input

Output

Faults

No faults are defined for this message.

Resource::GetPropertyValues

The operation retrieves the values of the specified property for the resource that corresponds to the data service.

Input

Output

Faults

Resource::AddPropertyValue

The operation adds a (set of) value(s) to the current set of values defined the resource and the specified property.

Input

Output

Faults

Resource::RemovePropertyValues

The operation removes the specified values defined for the resource and the specified property. If no values are specified, all the values defined for the resource and property will be removed. If no property is specified, the specified values associated to the resource regardless of the property will be removed. As a result, if no values and property are defined, all the values associated to the resource will be removed. It is important to mention, that the values that are resources themselves will not be removed from the repository. Only the values that are literals will be physically removed from the repository.

Input

Output

Faults

Resource::IsPropertyDefined

The operation checks if the specified property is defined for this resource, that is, there is a value associated to the resource by means of the specified property.

Input

Output

Faults

Resource::IsPropertyDefinable

The operation checks if the specified property is definable for this resource, that is, if any class in the domain of the property is parent of the resource.

Input

Output

Faults

Class

Static Class Description

TO DO

Configurable Class Description

TO DO

Example ClassPropertyDocument

TO DO

EXAMPLE CODE TO DO

Class

The operations provided by this interface are related to the different kind of things we can do with the model given a fixed class: browsing the class hierarchy, getting (inherited) properties, getting values for a given property and subject resource, adding and removing values to a given resource...

Figure X - Overview - Class

Class::GetRelatedClasses

The operation retrieves all the classes that are related to the class, taking into acount the class hierarchy if required.

Input

Output

Faults

No faults are defined for this message.

Class::GetRelatedProperties

Retrieve all the properties that are defined for the class, that is, those with domain the class or, if required, any of its super classes.

Input

Output

Faults

No faults are defined for this message.

Class::GetInstances

This operation retrieves all the resources that are instances of the class, taking into account the class hierarchy if required.

Input

Output

Faults

No faults are defined for this message.

Class::AddRelatedClass

The operation adds related classes to the class, specifying which will be the relationship between the class and the new related classes.

Input

Output

Faults

No faults are defined for this message.

Class::RemoveRelatedClasses

This operation removes relationships with classes related to this class. If no class is specified, all the classes related of the same type will be removed. Otherwise, only the related classes will be removed.

Input

Output

Faults

No faults are defined for this message.

Class::IsRelatedClass

The operation checks if the specified class is related to the class in any manner.

Input

Output

Faults

No faults are defined for this message.

Class::IsInstance

This operation checks if the specified resource is an instance of the class, taking into account the class hierarchy of required.

Input

Output

Faults

No faults are defined for this message.

Property

Static Property Description

TO DO

Configurable Property Description

TO DO

Example PropertyPropertyDocument

TO DO

EXAMPLE CODE TO DO

Property

The operations provided by this interface are related to the different kind of things we can do with the model given a fixed property: browsing the properties hierarchy, getting the domain and range, getting values for a given resource, adding and removing values to a given resource...

Figure X - Overview - Property

Property::GetRelatedProperties

This operation retrieves the properties that are related to the property, taking into account the property hierarchy if required.

Input

Output

Faults

No faults are defined for this message.

Property::GetDomain

This operation retrieves the classes that are defined as part of the domain of the property, taking into account the class hierarchy if required.

Input

Output

Faults

No faults are defined for this message.

Property::GetRange

This operation retrieves the classes that are defined as part of the range of the property, taking into account the class hierarchy if required.

Input

Output

Faults

No faults are defined for this message.

Property::GetValues

Retrieve all the values defined for this property and the specified resource, if any.

Input

Output

Faults

No faults are defined for this message.

Property::AddRelatedProperty

The operation adds related properties to the property specifying which will be the relationship between the property and the new related properties.

Input

Output

Faults

No faults are defined for this message.

Property::AddClassToDomain

The operation adds classes to the domain of the property.

Input

Output

Faults

No faults are defined for this message.

Property::AddClassToRange

This operation adds classes to the range of the property.

Input

Output

Faults

No faults are defined for this message.

Property::AddValue

This operation adds values for this property and the specified resource.

Input

Output

Faults

No faults are defined for this message.

Property::RemoveRelatedProperties

This operation removes relationships with properties related to this property. If no property is specified, all the properties related of the same type will be removed. Otherwise, only the related properties will be removed.

Input

Output

Faults

No faults are defined for this message.

Property::RemoveClassFromDomain

The operation removes classes from the domain of the property. If no class is specified, all the classes of the domain of the property will be removed. Otherwise, only the specified class will be removed from the domain.

Input

Output

Faults

No faults are defined for this message.

Property::RemoveClassFromRange

The operation removes classes from the range of the property. If no class is specified, all the classes of the range of the property will be removed. Otherwise, only the specified class will be removed from the range.

Input

Output

Faults

No faults are defined for this message.

Property::RemoveValue

This operation removes values for this property and the specified resource. If no value is specified, all the values associated to the specified resource by means of this property will be removed.

Input

Output

Faults

No faults are defined for this message.

Property::IsPropertyRelated

The operation checks if the specified property is related to this property in any manner.

Input

Output

Faults

No faults are defined for this message.

Property::IsClassInDomain

The operation checks if the specified class is in the domain of the property.

Input

Output

Faults

No faults are defined for this message.

Property::IsClassInRange

The operation checks if the specified class is in the range of the property.

Input

Output

Faults

No faults are defined for this message.

Statement

Static Statement Description

TO DO

Configurable Statement Description

TO DO

Example StatementPropertyDocument

TO DO

EXAMPLE CODE TO DO

Statement

This interface provides the basic operations needed for managing an statement. Operations are provided for dealing with elements of an statement.

Figure X - Overview - Statement

Statement::GetElements

This operation retrieves the elements of the statement that are of a given type (subject, predicate or object).

Input

Output

Faults

No faults are defined for this message.

Statement::AddElements

The operations adds elements of the specified type to the statement.

Input

Output

Faults

No faults are defined for this message.

Statement::RemoveElements

This operation removes elements of a given type of the statement. If an element is provided, only the resource will be removed. Otherwise, all the elements of that type will be removed.

Input

Output

Faults

No faults are defined for this message.

Statement::IsElement

Check if the element is part of the statement. If an element type is specified, then it is checked if the element is of that type.

Input

Output

Faults

No faults are defined for this message.

List

Static List Description

TO DO

Configurable List Description

TO DO

Example ListPropertyDocument

TO DO

EXAMPLE CODE TO DO

List

This interface provides the basic operations needed for managing generic lists. Operations are provided for dealing with a concrete node of a list.

Figure X - Overview - List

List::GetMembers

The operation retrieves the list of members defined for this node of the list.

Input

Output

Faults

No faults are defined for this message.

List::GetRest

This operation retrieves the URIs of the next nodes of the list defined for this node of the list.

Input

Output

Faults

No faults are defined for this message.

List::AddMember

The operation adds member(s) to this node of the list.

Input

Output

Faults

No faults are defined for this message.

List::AddRest

This operation adds node(s) to the list. If no nodes are specified, then the list is finalized.

Input

Output

Faults

No faults are defined for this message.

List::RemoveMember

This operation removes members from the current node of the list. If no members are specified, then all the members of the current node of the list will be removed.

Input

Output

Faults

No faults are defined for this message.

List::RemoveRest

This operation removes rest nodes from the list. If no nodes are specified, then all the nodes will be removed.

Input

Output

Faults

No faults are defined for this message.

List::IsMember

The operation checks if the specified element is a member of the current node of the list.

Input

Output

Faults

No faults are defined for this message.

List::IsNode

This operation checks if the specified node is a rest node of the current node of the list.

Input

Output

Faults

No faults are defined for this message.

Container

Static Container Description

TO DO

Configurable Container Description

TO DO

Example ContainerPropertyDocument

TO DO

EXAMPLE CODE TO DO

Container

This interface provides the basic operations needed for managing generic containers. The members are linked to the container by position.

Figure X - Overview - Container

Container::GetMembers

This operation retrieves the members that are defined for the container. If a position is specified, only the members located in that position will be returned.

Input

Output

Faults

No faults are defined for this message.

Container::GetNumberOfMembers

The operation retrieves the number of members that are defined for the container.

Input

Output

Faults

No faults are defined for this message.

Container::GetContainerType

The operation retrieves the type of container of the container. The returned result is the URI that identifies the type of container.

Input

Output

Faults

No faults are defined for this message.

Container::AddMember

The operation adds a member to the container at the specified position.

Input

Output

Faults

No faults are defined for this message.

Container::RemoveMembers

This operation removes the specified members from the container. If a position and a member are specified, then that specific member will be removed. If only the position is specified, then all the members of the container located at that position will be removed. If only the member is specified, then only that member will be removed regardless of its position. If nothing is specified, then all the members of the container will be removed.

Input

Output

Faults

No faults are defined for this message.

Container::IsMember

This operation checks if the specified resource is a member of the container.

Input

Output

Faults

No faults are defined for this message.

ContainerFactory

The interface provides operations for creating instances of data services which implement specific interfaces that provide added value operations for dealing with containers.

Figure X - Overview - ContainerFactory

ContainerFactory::GetContainerIteratorFactory

Retrieve an EPR pointing to a data service that implements the ContainerIterator access interface for dealing with this container.

Input

Output

Faults

No faults are defined for this message.

ContainerFactory::GetAltFactory

Retrieve an EPR pointing to a data service that implements the Alt interface, and provides access to this container.

Input

Output

Faults

ContainerIterator

The interface provides operations for traversing the members of the container following the Iterator pattern. There are two sets of operations, one which deals with individual members, and one that deals with sets of members that are located in the same position of the container. The interface provides capabilities for traversing the container in both directions.

Figure X - Overview - ContainerIterator

ContainerIterator::GetNextMember

The operation retrieves the first member of the container not yet retrieved by the consumer.

Input

Output

Faults

ContainerIterator::GetNextMemberSet

This operation retrieves the next set of members of the container not yet retrieved by the consumer.

Input

Output

Faults

ContainerIterator::GetPreviousMember

This operation retrieves the previous member of the container retrieved by the consumer.

Input

Output

Faults

ContainerIterator::GetPreviousMemberSet

This operation retrieves the previous set of members of the container already retrieved by the consumer.

Input

Output

Faults

ContainerIterator::HasNextMember

The operation checks out if a next member is available in the container.

Input

Output

Faults

No faults are defined for this message.

ContainerIterator::HasNextMemberSet

The operation checks out if a next member set is available in the container.

Input

Output

Faults

No faults are defined for this message.

ContainerIterator::HasPreviousMember

The operation checks out if a previous member is available.

Input

Output

Faults

No faults are defined for this message.

ContainerIterator::HasPreviousMemberSet

The operation checks out if a previous member set is available.

Input

Output

Faults

No faults are defined for this message.

Alt

Static Alt Description

TO DO

Configurable Alt Description

TO DO

Example AltPropertyDocument

TO DO

EXAMPLE CODE TO DO

Alt

The interface provides operations for working with this specific kind of container according to its special intended semantics. The operations provided deal with 'default' members and 'alternative' members, as specified in the RDF specification (see section 5.1.4, RDFS). The 'default' members are those members that are located at the first (rdf:_1) position of the container. The 'alternative' members are the rest of the elements of the container. GAD operations are provided for managing the members associated to this container.

Figure X - Overview - Alt

Alt::GetDefaultMembers

Retrieve the default members of the container, that is those members that are located at the first (rdf:_1) position of the container.

Input

Output

Faults

No faults are defined for this message.

Alt::GetAlternativeMembers

This operation retrieves alternative members of the container, provided their position(s). No members will be returned for the position '1' as the members in that position of the container are not alternative members but default ones. If no position is provided, all the alternative members will be retrieved.

Input

Output

Faults

No faults are defined for this message.

Alt::AddDefaultMember

This operation attaches default members to the container.

Input

Output

Faults

No faults are defined for this message.

Alt::AddAlternativeMember

The operation attaches alternative members to the container, provided the position that they must occupy.

Input

Output

Faults

No faults are defined for this message.

Alt::RemoveDefaultMembers

The operation removes the default members from the container. If concrete members are specified, then only those will be removed from the container.

Input

Output

Faults

No faults are defined for this message.

Alt::RemoveAlternativeMembers

This operation remove the specified alternative members from the container. If position is provided, then all the alternative members at that position will be removed. If specific members are provided, only they will be removed. If both arguments are provided, the associated members will only be removed if they are located at the concrete position. If no arguments are provided all the alternative members will be removed.

Input

Output

Faults

No faults are defined for this message.

Alt::IsDefaultMember

This operation checks if the specified member is a default member of the container.

Input

Output

Faults

No faults are defined for this message.

Alt::IsAlternativeMember

This operation checks if the specified member is an alternativ member of the container.

Input

Output

Faults

No faults are defined for this message.

Mapping to WSDL

TO DO

Security Considerations

TO DO

Conclusion

TO DO

Editor Information

TO DO

Contributor Information

TO DO

Acknowledgements

TO DO

Intellectual Property Statement

The GGF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the GGF Secretariat.

The GGF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights, which may cover technology that may be required to practice this recommendation. Please address the information to the GGF Executive Director.

Full Copyright Notice

Copyright (C) Global Grid Forum (2005). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the GGF or other organizations, except as needed for the purpose of developing Grid Recommendations in which case the procedures for copyrights defined in the GGF Document process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the GGF or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE GLOBAL GRID FORUM DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

References

TO DO

RepositorySelector XML Schema

TO DO

RepositorySelector WSDL

TO DO

RepositorySelectorFactory XML Schema

TO DO

RepositorySelectorFactory WSDL

TO DO

Repository XML Schema

TO DO

Repository WSDL

TO DO

RepositoryFactory XML Schema

TO DO

RepositoryFactory WSDL

TO DO

Resource XML Schema

TO DO

Resource WSDL

TO DO

Class XML Schema

TO DO

Class WSDL

TO DO

Property XML Schema

TO DO

Property WSDL

TO DO

Statement XML Schema

TO DO

Statement WSDL

TO DO

List XML Schema

TO DO

List WSDL

TO DO

Container XML Schema

TO DO

Container WSDL

TO DO

ContainerFactory XML Schema

TO DO

ContainerFactory WSDL

TO DO

ContainerIterator XML Schema

TO DO

ContainerIterator WSDL

TO DO

Alt XML Schema

TO DO

Alt WSDL

TO DO