docs: def get_compositions_by_asset(self, asset_id):
          """Gets a list of compositions including the given asset.
  
          arg:    asset_id (osid.id.Id): ``Id`` of the ``Asset``
          return: (osid.repository.CompositionList) - the returned
                  ``Composition list``
          raise:  NotFound - ``asset_id`` is not found
          raise:  NullArgument - ``asset_id`` is ``null``
          raise:  OperationFailed - unable to complete request
          raise:  PermissionDenied - authorization failure
          *compliance: mandatory -- This method must be implemented.*
  
          """
          # Implemented from template for
          # osid.repository.AssetCompositionSession.get_compositions_by_asset
          collection = JSONClientValidated('repository',
                                           collection='Composition',
                                           runtime=self._runtime)
          result = collection.find(
              dict({'assetIds': {'$in': [str(asset_id)]}},
                   **self._view_filter())).sort('_id', DESCENDING)
          return objects.CompositionList(result, runtime=self._runtime)