(*********************************************************************************)
(*                OCaml-RDF                                                      *)
(*                                                                               *)
(*    Copyright (C) 2012-2024 Institut National de Recherche en Informatique     *)
(*    et en Automatique. All rights reserved.                                    *)
(*                                                                               *)
(*    This program is free software; you can redistribute it and/or modify       *)
(*    it under the terms of the GNU Lesser General Public License version        *)
(*    3 as published by the Free Software Foundation.                            *)
(*                                                                               *)
(*    This program is distributed in the hope that it will be useful,            *)
(*    but WITHOUT ANY WARRANTY; without even the implied warranty of             *)
(*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *)
(*    GNU General Public License for more details.                               *)
(*                                                                               *)
(*    You should have received a copy of the GNU General Public License          *)
(*    along with this program; if not, write to the Free Software                *)
(*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA                   *)
(*    02111-1307  USA                                                            *)
(*                                                                               *)
(*    Contact: Maxence.Guesdon@inria.fr                                          *)
(*                                                                               *)
(*********************************************************************************)

let activitystreams_str = "https://www.w3.org/ns/activitystreams#";;
let activitystreams = Iri.of_string activitystreams_str ;;
let activitystreams_ s = Iri.of_string (activitystreams_str ^ s);;

let c_Accept = activitystreams_ "Accept" ;;
let c_Activity = activitystreams_ "Activity" ;;
let c_Add = activitystreams_ "Add" ;;
let c_Announce = activitystreams_ "Announce" ;;
let c_Application = activitystreams_ "Application" ;;
let c_Arrive = activitystreams_ "Arrive" ;;
let c_Article = activitystreams_ "Article" ;;
let c_Audio = activitystreams_ "Audio" ;;
let c_Block = activitystreams_ "Block" ;;
let c_Collection = activitystreams_ "Collection" ;;
let c_CollectionPage = activitystreams_ "CollectionPage" ;;
let c_Create = activitystreams_ "Create" ;;
let c_Delete = activitystreams_ "Delete" ;;
let c_Dislike = activitystreams_ "Dislike" ;;
let c_Document = activitystreams_ "Document" ;;
let c_Event = activitystreams_ "Event" ;;
let c_Flag = activitystreams_ "Flag" ;;
let c_Follow = activitystreams_ "Follow" ;;
let c_Group = activitystreams_ "Group" ;;
let c_Ignore = activitystreams_ "Ignore" ;;
let c_Image = activitystreams_ "Image" ;;
let c_IntransitiveActivity = activitystreams_ "IntransitiveActivity" ;;
let c_Invite = activitystreams_ "Invite" ;;
let c_Join = activitystreams_ "Join" ;;
let c_Leave = activitystreams_ "Leave" ;;
let c_Like = activitystreams_ "Like" ;;
let c_Link = activitystreams_ "Link" ;;
let c_Listen = activitystreams_ "Listen" ;;
let c_Mention = activitystreams_ "Mention" ;;
let c_Move = activitystreams_ "Move" ;;
let c_Note = activitystreams_ "Note" ;;
let c_Object = activitystreams_ "Object" ;;
let c_Offer = activitystreams_ "Offer" ;;
let c_OrderedCollection = activitystreams_ "OrderedCollection" ;;
let c_OrderedCollectionPage = activitystreams_ "OrderedCollectionPage" ;;
let c_OrderedItems = activitystreams_ "OrderedItems" ;;
let c_Organization = activitystreams_ "Organization" ;;
let c_Page = activitystreams_ "Page" ;;
let c_Person = activitystreams_ "Person" ;;
let c_Place = activitystreams_ "Place" ;;
let c_Profile = activitystreams_ "Profile" ;;
let c_Public = activitystreams_"Public";;
let c_Question = activitystreams_ "Question" ;;
let c_Read = activitystreams_ "Read" ;;
let c_Reject = activitystreams_ "Reject" ;;
let c_Relationship = activitystreams_ "Relationship" ;;
let c_Remove = activitystreams_ "Remove" ;;
let c_Service = activitystreams_ "Service" ;;
let c_TentativeAccept = activitystreams_ "TentativeAccept" ;;
let c_TentativeReject = activitystreams_ "TentativeReject" ;;
let c_Tombstone = activitystreams_ "Tombstone" ;;
let c_Travel = activitystreams_ "Travel" ;;
let c_Undo = activitystreams_ "Undo" ;;
let c_Update = activitystreams_ "Update" ;;
let c_Video = activitystreams_ "Video" ;;
let c_View = activitystreams_ "View" ;;
let accuracy = activitystreams_ "accuracy" ;;
let actor = activitystreams_ "actor" ;;
let altitude = activitystreams_ "altitude" ;;
let anyOf = activitystreams_ "anyOf" ;;
let attachment = activitystreams_ "attachment" ;;
let attachments = activitystreams_ "attachments" ;;
let attributedTo = activitystreams_ "attributedTo" ;;
let audience = activitystreams_ "audience" ;;
let author = activitystreams_ "author" ;;
let bcc = activitystreams_ "bcc" ;;
let bto = activitystreams_ "bto" ;;
let cc = activitystreams_ "cc" ;;
let content = activitystreams_ "content" ;;
let context = activitystreams_ "context" ;;
let current = activitystreams_ "current" ;;
let deleted = activitystreams_ "deleted" ;;
let describes = activitystreams_ "describes" ;;
let downstreamDuplicates = activitystreams_ "downstreamDuplicates" ;;
let duration = activitystreams_ "duration" ;;
let endTime = activitystreams_ "endTime" ;;
let first = activitystreams_ "first" ;;
let formerType = activitystreams_ "formerType" ;;
let generator = activitystreams_ "generator" ;;
let height = activitystreams_ "height" ;;
let href = activitystreams_ "href" ;;
let hreflang = activitystreams_ "hreflang" ;;
let icon = activitystreams_ "icon" ;;
let id = activitystreams_ "id" ;;
let image = activitystreams_ "image" ;;
let inReplyTo = activitystreams_ "inReplyTo" ;;
let instrument = activitystreams_ "instrument" ;;
let items = activitystreams_ "items" ;;
let last = activitystreams_ "last" ;;
let latitude = activitystreams_ "latitude" ;;
let location = activitystreams_ "location" ;;
let longitude = activitystreams_ "longitude" ;;
let mediaType = activitystreams_ "mediaType" ;;
let name = activitystreams_ "name" ;;
let next = activitystreams_ "next" ;;
let object_ = activitystreams_ "object" ;;
let objectType = activitystreams_ "objectType" ;;
let oneOf = activitystreams_ "oneOf" ;;
let origin = activitystreams_ "origin" ;;
let partOf = activitystreams_ "partOf" ;;
let prev = activitystreams_ "prev" ;;
let preview = activitystreams_ "preview" ;;
let provider = activitystreams_ "provider" ;;
let published = activitystreams_ "published" ;;
let radius = activitystreams_ "radius" ;;
let rating = activitystreams_ "rating" ;;
let rel = activitystreams_ "rel" ;;
let relationship = activitystreams_ "relationship" ;;
let replies = activitystreams_ "replies" ;;
let result = activitystreams_ "result" ;;
let startIndex = activitystreams_ "startIndex" ;;
let startTime = activitystreams_ "startTime" ;;
let subject = activitystreams_ "subject" ;;
let summary = activitystreams_ "summary" ;;
let tag = activitystreams_ "tag" ;;
let tags = activitystreams_ "tags" ;;
let target = activitystreams_ "target" ;;
let to_ = activitystreams_ "to" ;;
let totalItems = activitystreams_ "totalItems" ;;
let units = activitystreams_ "units" ;;
let updated = activitystreams_ "updated" ;;
let upstreamDuplicates = activitystreams_ "upstreamDuplicates" ;;
let url = activitystreams_ "url" ;;
let verb = activitystreams_ "verb" ;;
let width = activitystreams_ "width" ;;

module Open = struct
  let activitystreams_c_Accept = c_Accept
  let activitystreams_c_Activity = c_Activity
  let activitystreams_c_Add = c_Add
  let activitystreams_c_Announce = c_Announce
  let activitystreams_c_Application = c_Application
  let activitystreams_c_Arrive = c_Arrive
  let activitystreams_c_Article = c_Article
  let activitystreams_c_Audio = c_Audio
  let activitystreams_c_Block = c_Block
  let activitystreams_c_Collection = c_Collection
  let activitystreams_c_CollectionPage = c_CollectionPage
  let activitystreams_c_Create = c_Create
  let activitystreams_c_Delete = c_Delete
  let activitystreams_c_Dislike = c_Dislike
  let activitystreams_c_Document = c_Document
  let activitystreams_c_Event = c_Event
  let activitystreams_c_Flag = c_Flag
  let activitystreams_c_Follow = c_Follow
  let activitystreams_c_Group = c_Group
  let activitystreams_c_Ignore = c_Ignore
  let activitystreams_c_Image = c_Image
  let activitystreams_c_IntransitiveActivity = c_IntransitiveActivity
  let activitystreams_c_Invite = c_Invite
  let activitystreams_c_Join = c_Join
  let activitystreams_c_Leave = c_Leave
  let activitystreams_c_Like = c_Like
  let activitystreams_c_Link = c_Link
  let activitystreams_c_Listen = c_Listen
  let activitystreams_c_Mention = c_Mention
  let activitystreams_c_Move = c_Move
  let activitystreams_c_Note = c_Note
  let activitystreams_c_Object = c_Object
  let activitystreams_c_Offer = c_Offer
  let activitystreams_c_OrderedCollection = c_OrderedCollection
  let activitystreams_c_OrderedCollectionPage = c_OrderedCollectionPage
  let activitystreams_c_OrderedItems = c_OrderedItems
  let activitystreams_c_Organization = c_Organization
  let activitystreams_c_Page = c_Page
  let activitystreams_c_Person = c_Person
  let activitystreams_c_Place = c_Place
  let activitystreams_c_Profile = c_Profile
  let activitystreams_c_Public = c_Public
  let activitystreams_c_Question = c_Question
  let activitystreams_c_Read = c_Read
  let activitystreams_c_Reject = c_Reject
  let activitystreams_c_Relationship = c_Relationship
  let activitystreams_c_Remove = c_Remove
  let activitystreams_c_Service = c_Service
  let activitystreams_c_TentativeAccept = c_TentativeAccept
  let activitystreams_c_TentativeReject = c_TentativeReject
  let activitystreams_c_Tombstone = c_Tombstone
  let activitystreams_c_Travel = c_Travel
  let activitystreams_c_Undo = c_Undo
  let activitystreams_c_Update = c_Update
  let activitystreams_c_Video = c_Video
  let activitystreams_c_View = c_View
  let activitystreams_accuracy = accuracy
  let activitystreams_actor = actor
  let activitystreams_altitude = altitude
  let activitystreams_anyOf = anyOf
  let activitystreams_attachment = attachment
  let activitystreams_attachments = attachments
  let activitystreams_attributedTo = attributedTo
  let activitystreams_audience = audience
  let activitystreams_author = author
  let activitystreams_bcc = bcc
  let activitystreams_bto = bto
  let activitystreams_cc = cc
  let activitystreams_content = content
  let activitystreams_context = context
  let activitystreams_current = current
  let activitystreams_deleted = deleted
  let activitystreams_describes = describes
  let activitystreams_downstreamDuplicates = downstreamDuplicates
  let activitystreams_duration = duration
  let activitystreams_endTime = endTime
  let activitystreams_first = first
  let activitystreams_formerType = formerType
  let activitystreams_generator = generator
  let activitystreams_height = height
  let activitystreams_href = href
  let activitystreams_hreflang = hreflang
  let activitystreams_icon = icon
  let activitystreams_id = id
  let activitystreams_image = image
  let activitystreams_inReplyTo = inReplyTo
  let activitystreams_instrument = instrument
  let activitystreams_items = items
  let activitystreams_last = last
  let activitystreams_latitude = latitude
  let activitystreams_location = location
  let activitystreams_longitude = longitude
  let activitystreams_mediaType = mediaType
  let activitystreams_name = name
  let activitystreams_next = next
  let activitystreams_object = object_
  let activitystreams_objectType = objectType
  let activitystreams_oneOf = oneOf
  let activitystreams_origin = origin
  let activitystreams_partOf = partOf
  let activitystreams_prev = prev
  let activitystreams_preview = preview
  let activitystreams_provider = provider
  let activitystreams_published = published
  let activitystreams_radius = radius
  let activitystreams_rating = rating
  let activitystreams_rel = rel
  let activitystreams_relationship = relationship
  let activitystreams_replies = replies
  let activitystreams_result = result
  let activitystreams_startIndex = startIndex
  let activitystreams_startTime = startTime
  let activitystreams_subject = subject
  let activitystreams_summary = summary
  let activitystreams_tag = tag
  let activitystreams_tags = tags
  let activitystreams_target = target
  let activitystreams_to = to_
  let activitystreams_totalItems = totalItems
  let activitystreams_units = units
  let activitystreams_updated = updated
  let activitystreams_upstreamDuplicates = upstreamDuplicates
  let activitystreams_url = url
  let activitystreams_verb = verb
  let activitystreams_width = width
end

class from ?sub g =
  let sub = match sub with None -> Term.Iri (g.Graph.name()) | Some t -> t in
  object(self)
  method accuracy = Graph.literal_objects_of g ~sub ~pred: accuracy
  method accuracy_opt = match self#accuracy with [] -> None | x::_ -> Some x
  method actor = g.Graph.objects_of ~sub ~pred: actor
  method actor_opt = match self#actor with [] -> None | x::_ -> Some x
  method actor_iris = Graph.only_iris (self#actor)
  method actor_opt_iri = match self#actor_iris with [] -> None | x::_ -> Some x
  method altitude = Graph.literal_objects_of g ~sub ~pred: altitude
  method altitude_opt = match self#altitude with [] -> None | x::_ -> Some x
  method anyOf = g.Graph.objects_of ~sub ~pred: anyOf
  method anyOf_opt = match self#anyOf with [] -> None | x::_ -> Some x
  method anyOf_iris = Graph.only_iris (self#anyOf)
  method anyOf_opt_iri = match self#anyOf_iris with [] -> None | x::_ -> Some x
  method attachment = g.Graph.objects_of ~sub ~pred: attachment
  method attachment_opt = match self#attachment with [] -> None | x::_ -> Some x
  method attachment_iris = Graph.only_iris (self#attachment)
  method attachment_opt_iri = match self#attachment_iris with [] -> None | x::_ -> Some x
  method attachments = g.Graph.objects_of ~sub ~pred: attachments
  method attachments_opt = match self#attachments with [] -> None | x::_ -> Some x
  method attachments_iris = Graph.only_iris (self#attachments)
  method attachments_opt_iri = match self#attachments_iris with [] -> None | x::_ -> Some x
  method attributedTo = g.Graph.objects_of ~sub ~pred: attributedTo
  method attributedTo_opt = match self#attributedTo with [] -> None | x::_ -> Some x
  method attributedTo_iris = Graph.only_iris (self#attributedTo)
  method attributedTo_opt_iri = match self#attributedTo_iris with [] -> None | x::_ -> Some x
  method audience = g.Graph.objects_of ~sub ~pred: audience
  method audience_opt = match self#audience with [] -> None | x::_ -> Some x
  method audience_iris = Graph.only_iris (self#audience)
  method audience_opt_iri = match self#audience_iris with [] -> None | x::_ -> Some x
  method author = g.Graph.objects_of ~sub ~pred: author
  method author_opt = match self#author with [] -> None | x::_ -> Some x
  method author_iris = Graph.only_iris (self#author)
  method author_opt_iri = match self#author_iris with [] -> None | x::_ -> Some x
  method bcc = g.Graph.objects_of ~sub ~pred: bcc
  method bcc_opt = match self#bcc with [] -> None | x::_ -> Some x
  method bcc_iris = Graph.only_iris (self#bcc)
  method bcc_opt_iri = match self#bcc_iris with [] -> None | x::_ -> Some x
  method bto = g.Graph.objects_of ~sub ~pred: bto
  method bto_opt = match self#bto with [] -> None | x::_ -> Some x
  method bto_iris = Graph.only_iris (self#bto)
  method bto_opt_iri = match self#bto_iris with [] -> None | x::_ -> Some x
  method cc = g.Graph.objects_of ~sub ~pred: cc
  method cc_opt = match self#cc with [] -> None | x::_ -> Some x
  method cc_iris = Graph.only_iris (self#cc)
  method cc_opt_iri = match self#cc_iris with [] -> None | x::_ -> Some x
  method content = Graph.literal_objects_of g ~sub ~pred: content
  method content_opt = match self#content with [] -> None | x::_ -> Some x
  method context = g.Graph.objects_of ~sub ~pred: context
  method context_opt = match self#context with [] -> None | x::_ -> Some x
  method context_iris = Graph.only_iris (self#context)
  method context_opt_iri = match self#context_iris with [] -> None | x::_ -> Some x
  method current = g.Graph.objects_of ~sub ~pred: current
  method current_opt = match self#current with [] -> None | x::_ -> Some x
  method current_iris = Graph.only_iris (self#current)
  method current_opt_iri = match self#current_iris with [] -> None | x::_ -> Some x
  method deleted = Graph.literal_objects_of g ~sub ~pred: deleted
  method deleted_opt = match self#deleted with [] -> None | x::_ -> Some x
  method describes = g.Graph.objects_of ~sub ~pred: describes
  method describes_opt = match self#describes with [] -> None | x::_ -> Some x
  method describes_iris = Graph.only_iris (self#describes)
  method describes_opt_iri = match self#describes_iris with [] -> None | x::_ -> Some x
  method downstreamDuplicates = Graph.literal_objects_of g ~sub ~pred: downstreamDuplicates
  method downstreamDuplicates_opt = match self#downstreamDuplicates with [] -> None | x::_ -> Some x
  method duration = Graph.literal_objects_of g ~sub ~pred: duration
  method duration_opt = match self#duration with [] -> None | x::_ -> Some x
  method endTime = Graph.literal_objects_of g ~sub ~pred: endTime
  method endTime_opt = match self#endTime with [] -> None | x::_ -> Some x
  method first = g.Graph.objects_of ~sub ~pred: first
  method first_opt = match self#first with [] -> None | x::_ -> Some x
  method first_iris = Graph.only_iris (self#first)
  method first_opt_iri = match self#first_iris with [] -> None | x::_ -> Some x
  method formerType = g.Graph.objects_of ~sub ~pred: formerType
  method formerType_opt = match self#formerType with [] -> None | x::_ -> Some x
  method formerType_iris = Graph.only_iris (self#formerType)
  method formerType_opt_iri = match self#formerType_iris with [] -> None | x::_ -> Some x
  method generator = g.Graph.objects_of ~sub ~pred: generator
  method generator_opt = match self#generator with [] -> None | x::_ -> Some x
  method generator_iris = Graph.only_iris (self#generator)
  method generator_opt_iri = match self#generator_iris with [] -> None | x::_ -> Some x
  method height = Graph.literal_objects_of g ~sub ~pred: height
  method height_opt = match self#height with [] -> None | x::_ -> Some x
  method href = Graph.literal_objects_of g ~sub ~pred: href
  method href_opt = match self#href with [] -> None | x::_ -> Some x
  method hreflang = Graph.literal_objects_of g ~sub ~pred: hreflang
  method hreflang_opt = match self#hreflang with [] -> None | x::_ -> Some x
  method icon = g.Graph.objects_of ~sub ~pred: icon
  method icon_opt = match self#icon with [] -> None | x::_ -> Some x
  method icon_iris = Graph.only_iris (self#icon)
  method icon_opt_iri = match self#icon_iris with [] -> None | x::_ -> Some x
  method id = Graph.literal_objects_of g ~sub ~pred: id
  method id_opt = match self#id with [] -> None | x::_ -> Some x
  method image = g.Graph.objects_of ~sub ~pred: image
  method image_opt = match self#image with [] -> None | x::_ -> Some x
  method image_iris = Graph.only_iris (self#image)
  method image_opt_iri = match self#image_iris with [] -> None | x::_ -> Some x
  method inReplyTo = g.Graph.objects_of ~sub ~pred: inReplyTo
  method inReplyTo_opt = match self#inReplyTo with [] -> None | x::_ -> Some x
  method inReplyTo_iris = Graph.only_iris (self#inReplyTo)
  method inReplyTo_opt_iri = match self#inReplyTo_iris with [] -> None | x::_ -> Some x
  method instrument = g.Graph.objects_of ~sub ~pred: instrument
  method instrument_opt = match self#instrument with [] -> None | x::_ -> Some x
  method instrument_iris = Graph.only_iris (self#instrument)
  method instrument_opt_iri = match self#instrument_iris with [] -> None | x::_ -> Some x
  method items = g.Graph.objects_of ~sub ~pred: items
  method items_opt = match self#items with [] -> None | x::_ -> Some x
  method items_iris = Graph.only_iris (self#items)
  method items_opt_iri = match self#items_iris with [] -> None | x::_ -> Some x
  method last = g.Graph.objects_of ~sub ~pred: last
  method last_opt = match self#last with [] -> None | x::_ -> Some x
  method last_iris = Graph.only_iris (self#last)
  method last_opt_iri = match self#last_iris with [] -> None | x::_ -> Some x
  method latitude = Graph.literal_objects_of g ~sub ~pred: latitude
  method latitude_opt = match self#latitude with [] -> None | x::_ -> Some x
  method location = g.Graph.objects_of ~sub ~pred: location
  method location_opt = match self#location with [] -> None | x::_ -> Some x
  method location_iris = Graph.only_iris (self#location)
  method location_opt_iri = match self#location_iris with [] -> None | x::_ -> Some x
  method longitude = Graph.literal_objects_of g ~sub ~pred: longitude
  method longitude_opt = match self#longitude with [] -> None | x::_ -> Some x
  method mediaType = Graph.literal_objects_of g ~sub ~pred: mediaType
  method mediaType_opt = match self#mediaType with [] -> None | x::_ -> Some x
  method name = Graph.literal_objects_of g ~sub ~pred: name
  method name_opt = match self#name with [] -> None | x::_ -> Some x
  method next = g.Graph.objects_of ~sub ~pred: next
  method next_opt = match self#next with [] -> None | x::_ -> Some x
  method next_iris = Graph.only_iris (self#next)
  method next_opt_iri = match self#next_iris with [] -> None | x::_ -> Some x
  method object_ = g.Graph.objects_of ~sub ~pred: object_
  method object__opt = match self#object_ with [] -> None | x::_ -> Some x
  method object__iris = Graph.only_iris (self#object_)
  method object__opt_iri = match self#object__iris with [] -> None | x::_ -> Some x
  method objectType = Graph.literal_objects_of g ~sub ~pred: objectType
  method objectType_opt = match self#objectType with [] -> None | x::_ -> Some x
  method oneOf = g.Graph.objects_of ~sub ~pred: oneOf
  method oneOf_opt = match self#oneOf with [] -> None | x::_ -> Some x
  method oneOf_iris = Graph.only_iris (self#oneOf)
  method oneOf_opt_iri = match self#oneOf_iris with [] -> None | x::_ -> Some x
  method origin = g.Graph.objects_of ~sub ~pred: origin
  method origin_opt = match self#origin with [] -> None | x::_ -> Some x
  method origin_iris = Graph.only_iris (self#origin)
  method origin_opt_iri = match self#origin_iris with [] -> None | x::_ -> Some x
  method partOf = g.Graph.objects_of ~sub ~pred: partOf
  method partOf_opt = match self#partOf with [] -> None | x::_ -> Some x
  method partOf_iris = Graph.only_iris (self#partOf)
  method partOf_opt_iri = match self#partOf_iris with [] -> None | x::_ -> Some x
  method prev = g.Graph.objects_of ~sub ~pred: prev
  method prev_opt = match self#prev with [] -> None | x::_ -> Some x
  method prev_iris = Graph.only_iris (self#prev)
  method prev_opt_iri = match self#prev_iris with [] -> None | x::_ -> Some x
  method preview = g.Graph.objects_of ~sub ~pred: preview
  method preview_opt = match self#preview with [] -> None | x::_ -> Some x
  method preview_iris = Graph.only_iris (self#preview)
  method preview_opt_iri = match self#preview_iris with [] -> None | x::_ -> Some x
  method provider = g.Graph.objects_of ~sub ~pred: provider
  method provider_opt = match self#provider with [] -> None | x::_ -> Some x
  method provider_iris = Graph.only_iris (self#provider)
  method provider_opt_iri = match self#provider_iris with [] -> None | x::_ -> Some x
  method published = Graph.literal_objects_of g ~sub ~pred: published
  method published_opt = match self#published with [] -> None | x::_ -> Some x
  method radius = Graph.literal_objects_of g ~sub ~pred: radius
  method radius_opt = match self#radius with [] -> None | x::_ -> Some x
  method rating = Graph.literal_objects_of g ~sub ~pred: rating
  method rating_opt = match self#rating with [] -> None | x::_ -> Some x
  method rel = Graph.literal_objects_of g ~sub ~pred: rel
  method rel_opt = match self#rel with [] -> None | x::_ -> Some x
  method relationship = g.Graph.objects_of ~sub ~pred: relationship
  method relationship_opt = match self#relationship with [] -> None | x::_ -> Some x
  method relationship_iris = Graph.only_iris (self#relationship)
  method relationship_opt_iri = match self#relationship_iris with [] -> None | x::_ -> Some x
  method replies = g.Graph.objects_of ~sub ~pred: replies
  method replies_opt = match self#replies with [] -> None | x::_ -> Some x
  method replies_iris = Graph.only_iris (self#replies)
  method replies_opt_iri = match self#replies_iris with [] -> None | x::_ -> Some x
  method result = g.Graph.objects_of ~sub ~pred: result
  method result_opt = match self#result with [] -> None | x::_ -> Some x
  method result_iris = Graph.only_iris (self#result)
  method result_opt_iri = match self#result_iris with [] -> None | x::_ -> Some x
  method startIndex = Graph.literal_objects_of g ~sub ~pred: startIndex
  method startIndex_opt = match self#startIndex with [] -> None | x::_ -> Some x
  method startTime = Graph.literal_objects_of g ~sub ~pred: startTime
  method startTime_opt = match self#startTime with [] -> None | x::_ -> Some x
  method subject = g.Graph.objects_of ~sub ~pred: subject
  method subject_opt = match self#subject with [] -> None | x::_ -> Some x
  method subject_iris = Graph.only_iris (self#subject)
  method subject_opt_iri = match self#subject_iris with [] -> None | x::_ -> Some x
  method summary = Graph.literal_objects_of g ~sub ~pred: summary
  method summary_opt = match self#summary with [] -> None | x::_ -> Some x
  method tag = g.Graph.objects_of ~sub ~pred: tag
  method tag_opt = match self#tag with [] -> None | x::_ -> Some x
  method tag_iris = Graph.only_iris (self#tag)
  method tag_opt_iri = match self#tag_iris with [] -> None | x::_ -> Some x
  method tags = g.Graph.objects_of ~sub ~pred: tags
  method tags_opt = match self#tags with [] -> None | x::_ -> Some x
  method tags_iris = Graph.only_iris (self#tags)
  method tags_opt_iri = match self#tags_iris with [] -> None | x::_ -> Some x
  method target = g.Graph.objects_of ~sub ~pred: target
  method target_opt = match self#target with [] -> None | x::_ -> Some x
  method target_iris = Graph.only_iris (self#target)
  method target_opt_iri = match self#target_iris with [] -> None | x::_ -> Some x
  method to_ = g.Graph.objects_of ~sub ~pred: to_
  method to__opt = match self#to_ with [] -> None | x::_ -> Some x
  method to__iris = Graph.only_iris (self#to_)
  method to__opt_iri = match self#to__iris with [] -> None | x::_ -> Some x
  method totalItems = Graph.literal_objects_of g ~sub ~pred: totalItems
  method totalItems_opt = match self#totalItems with [] -> None | x::_ -> Some x
  method units = Graph.literal_objects_of g ~sub ~pred: units
  method units_opt = match self#units with [] -> None | x::_ -> Some x
  method updated = Graph.literal_objects_of g ~sub ~pred: updated
  method updated_opt = match self#updated with [] -> None | x::_ -> Some x
  method upstreamDuplicates = Graph.literal_objects_of g ~sub ~pred: upstreamDuplicates
  method upstreamDuplicates_opt = match self#upstreamDuplicates with [] -> None | x::_ -> Some x
  method url = g.Graph.objects_of ~sub ~pred: url
  method url_opt = match self#url with [] -> None | x::_ -> Some x
  method url_iris = Graph.only_iris (self#url)
  method url_opt_iri = match self#url_iris with [] -> None | x::_ -> Some x
  method verb = Graph.literal_objects_of g ~sub ~pred: verb
  method verb_opt = match self#verb with [] -> None | x::_ -> Some x
  method width = Graph.literal_objects_of g ~sub ~pred: width
  method width_opt = match self#width with [] -> None | x::_ -> Some x
  end
