(*********************************************************************************)
(*                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 vcard_str = "http://www.w3.org/2006/vcard/ns#";;
let vcard = Iri.of_string vcard_str ;;
let vcard_ s = Iri.of_string (vcard_str ^ s);;

let c_Acquaintance = vcard_ "Acquaintance" ;;
let c_Address = vcard_ "Address" ;;
let c_Agent = vcard_ "Agent" ;;
let c_BBS = vcard_ "BBS" ;;
let c_Car = vcard_ "Car" ;;
let c_Cell = vcard_ "Cell" ;;
let c_Child = vcard_ "Child" ;;
let c_Colleague = vcard_ "Colleague" ;;
let c_Contact = vcard_ "Contact" ;;
let c_Coresident = vcard_ "Coresident" ;;
let c_Coworker = vcard_ "Coworker" ;;
let c_Crush = vcard_ "Crush" ;;
let c_Date = vcard_ "Date" ;;
let c_Dom = vcard_ "Dom" ;;
let c_Email = vcard_ "Email" ;;
let c_Emergency = vcard_ "Emergency" ;;
let c_Fax = vcard_ "Fax" ;;
let c_Female = vcard_ "Female" ;;
let c_Friend = vcard_ "Friend" ;;
let c_Gender = vcard_ "Gender" ;;
let c_Group = vcard_ "Group" ;;
let c_Home = vcard_ "Home" ;;
let c_ISDN = vcard_ "ISDN" ;;
let c_Individual = vcard_ "Individual" ;;
let c_Internet = vcard_ "Internet" ;;
let c_Intl = vcard_ "Intl" ;;
let c_Kin = vcard_ "Kin" ;;
let c_Kind = vcard_ "Kind" ;;
let c_Label = vcard_ "Label" ;;
let c_Location = vcard_ "Location" ;;
let c_Male = vcard_ "Male" ;;
let c_Me = vcard_ "Me" ;;
let c_Met = vcard_ "Met" ;;
let c_Modem = vcard_ "Modem" ;;
let c_Msg = vcard_ "Msg" ;;
let c_Muse = vcard_ "Muse" ;;
let c_Name = vcard_ "Name" ;;
let c_Neighbor = vcard_ "Neighbor" ;;
let c_None = vcard_ "None" ;;
let c_Organization = vcard_ "Organization" ;;
let c_Other = vcard_ "Other" ;;
let c_PCS = vcard_ "PCS" ;;
let c_Pager = vcard_ "Pager" ;;
let c_Parcel = vcard_ "Parcel" ;;
let c_Parent = vcard_ "Parent" ;;
let c_Postal = vcard_ "Postal" ;;
let c_Pref = vcard_ "Pref" ;;
let c_RelatedType = vcard_ "RelatedType" ;;
let c_Sibling = vcard_ "Sibling" ;;
let c_Spouse = vcard_ "Spouse" ;;
let c_Sweetheart = vcard_ "Sweetheart" ;;
let c_Tel = vcard_ "Tel" ;;
let c_TelephoneType = vcard_ "TelephoneType" ;;
let c_Text = vcard_ "Text" ;;
let c_TextPhone = vcard_ "TextPhone" ;;
let c_Type = vcard_ "Type" ;;
let c_Unknown = vcard_ "Unknown" ;;
let c_VCard = vcard_ "VCard" ;;
let c_Video = vcard_ "Video" ;;
let c_Voice = vcard_ "Voice" ;;
let c_Work = vcard_ "Work" ;;
let c_X400 = vcard_ "X400" ;;
let additional_name = vcard_ "additional-name" ;;
let adr = vcard_ "adr" ;;
let agent = vcard_ "agent" ;;
let anniversary = vcard_ "anniversary" ;;
let bday = vcard_ "bday" ;;
let category = vcard_ "category" ;;
let class_ = vcard_ "class" ;;
let country_name = vcard_ "country-name" ;;
let email = vcard_ "email" ;;
let extended_address = vcard_ "extended-address" ;;
let family_name = vcard_ "family-name" ;;
let fn = vcard_ "fn" ;;
let geo = vcard_ "geo" ;;
let given_name = vcard_ "given-name" ;;
let hasAdditionalName = vcard_ "hasAdditionalName" ;;
let hasAddress = vcard_ "hasAddress" ;;
let hasCalendarBusy = vcard_ "hasCalendarBusy" ;;
let hasCalendarLink = vcard_ "hasCalendarLink" ;;
let hasCalendarRequest = vcard_ "hasCalendarRequest" ;;
let hasCategory = vcard_ "hasCategory" ;;
let hasCountryName = vcard_ "hasCountryName" ;;
let hasEmail = vcard_ "hasEmail" ;;
let hasFN = vcard_ "hasFN" ;;
let hasFamilyName = vcard_ "hasFamilyName" ;;
let hasGender = vcard_ "hasGender" ;;
let hasGeo = vcard_ "hasGeo" ;;
let hasGivenName = vcard_ "hasGivenName" ;;
let hasHonorificPrefix = vcard_ "hasHonorificPrefix" ;;
let hasHonorificSuffix = vcard_ "hasHonorificSuffix" ;;
let hasInstantMessage = vcard_ "hasInstantMessage" ;;
let hasKey = vcard_ "hasKey" ;;
let hasLanguage = vcard_ "hasLanguage" ;;
let hasLocality = vcard_ "hasLocality" ;;
let hasLogo = vcard_ "hasLogo" ;;
let hasMember = vcard_ "hasMember" ;;
let hasName = vcard_ "hasName" ;;
let hasNickname = vcard_ "hasNickname" ;;
let hasNote = vcard_ "hasNote" ;;
let hasOrganizationName = vcard_ "hasOrganizationName" ;;
let hasOrganizationUnit = vcard_ "hasOrganizationUnit" ;;
let hasPhoto = vcard_ "hasPhoto" ;;
let hasPostalCode = vcard_ "hasPostalCode" ;;
let hasRegion = vcard_ "hasRegion" ;;
let hasRelated = vcard_ "hasRelated" ;;
let hasRole = vcard_ "hasRole" ;;
let hasSound = vcard_ "hasSound" ;;
let hasSource = vcard_ "hasSource" ;;
let hasStreetAddress = vcard_ "hasStreetAddress" ;;
let hasTelephone = vcard_ "hasTelephone" ;;
let hasTitle = vcard_ "hasTitle" ;;
let hasUID = vcard_ "hasUID" ;;
let hasURL = vcard_ "hasURL" ;;
let hasValue = vcard_ "hasValue" ;;
let honorific_prefix = vcard_ "honorific-prefix" ;;
let honorific_suffix = vcard_ "honorific-suffix" ;;
let key = vcard_ "key" ;;
let label = vcard_ "label" ;;
let language = vcard_ "language" ;;
let latitude = vcard_ "latitude" ;;
let locality = vcard_ "locality" ;;
let logo = vcard_ "logo" ;;
let longitude = vcard_ "longitude" ;;
let mailer = vcard_ "mailer" ;;
let n = vcard_ "n" ;;
let nickname = vcard_ "nickname" ;;
let note = vcard_ "note" ;;
let org = vcard_ "org" ;;
let organization_name = vcard_ "organization-name" ;;
let organization_unit = vcard_ "organization-unit" ;;
let photo = vcard_ "photo" ;;
let post_office_box = vcard_ "post-office-box" ;;
let postal_code = vcard_ "postal-code" ;;
let prodid = vcard_ "prodid" ;;
let region = vcard_ "region" ;;
let rev = vcard_ "rev" ;;
let role = vcard_ "role" ;;
let sort_string = vcard_ "sort-string" ;;
let sound = vcard_ "sound" ;;
let street_address = vcard_ "street-address" ;;
let tel = vcard_ "tel" ;;
let title = vcard_ "title" ;;
let tz = vcard_ "tz" ;;
let url = vcard_ "url" ;;
let value = vcard_ "value" ;;

module Open = struct
  let vcard_c_Acquaintance = c_Acquaintance
  let vcard_c_Address = c_Address
  let vcard_c_Agent = c_Agent
  let vcard_c_BBS = c_BBS
  let vcard_c_Car = c_Car
  let vcard_c_Cell = c_Cell
  let vcard_c_Child = c_Child
  let vcard_c_Colleague = c_Colleague
  let vcard_c_Contact = c_Contact
  let vcard_c_Coresident = c_Coresident
  let vcard_c_Coworker = c_Coworker
  let vcard_c_Crush = c_Crush
  let vcard_c_Date = c_Date
  let vcard_c_Dom = c_Dom
  let vcard_c_Email = c_Email
  let vcard_c_Emergency = c_Emergency
  let vcard_c_Fax = c_Fax
  let vcard_c_Female = c_Female
  let vcard_c_Friend = c_Friend
  let vcard_c_Gender = c_Gender
  let vcard_c_Group = c_Group
  let vcard_c_Home = c_Home
  let vcard_c_ISDN = c_ISDN
  let vcard_c_Individual = c_Individual
  let vcard_c_Internet = c_Internet
  let vcard_c_Intl = c_Intl
  let vcard_c_Kin = c_Kin
  let vcard_c_Kind = c_Kind
  let vcard_c_Label = c_Label
  let vcard_c_Location = c_Location
  let vcard_c_Male = c_Male
  let vcard_c_Me = c_Me
  let vcard_c_Met = c_Met
  let vcard_c_Modem = c_Modem
  let vcard_c_Msg = c_Msg
  let vcard_c_Muse = c_Muse
  let vcard_c_Name = c_Name
  let vcard_c_Neighbor = c_Neighbor
  let vcard_c_None = c_None
  let vcard_c_Organization = c_Organization
  let vcard_c_Other = c_Other
  let vcard_c_PCS = c_PCS
  let vcard_c_Pager = c_Pager
  let vcard_c_Parcel = c_Parcel
  let vcard_c_Parent = c_Parent
  let vcard_c_Postal = c_Postal
  let vcard_c_Pref = c_Pref
  let vcard_c_RelatedType = c_RelatedType
  let vcard_c_Sibling = c_Sibling
  let vcard_c_Spouse = c_Spouse
  let vcard_c_Sweetheart = c_Sweetheart
  let vcard_c_Tel = c_Tel
  let vcard_c_TelephoneType = c_TelephoneType
  let vcard_c_Text = c_Text
  let vcard_c_TextPhone = c_TextPhone
  let vcard_c_Type = c_Type
  let vcard_c_Unknown = c_Unknown
  let vcard_c_VCard = c_VCard
  let vcard_c_Video = c_Video
  let vcard_c_Voice = c_Voice
  let vcard_c_Work = c_Work
  let vcard_c_X400 = c_X400
  let vcard_additional_name = additional_name
  let vcard_adr = adr
  let vcard_agent = agent
  let vcard_anniversary = anniversary
  let vcard_bday = bday
  let vcard_category = category
  let vcard_class = class_
  let vcard_country_name = country_name
  let vcard_email = email
  let vcard_extended_address = extended_address
  let vcard_family_name = family_name
  let vcard_fn = fn
  let vcard_geo = geo
  let vcard_given_name = given_name
  let vcard_hasAdditionalName = hasAdditionalName
  let vcard_hasAddress = hasAddress
  let vcard_hasCalendarBusy = hasCalendarBusy
  let vcard_hasCalendarLink = hasCalendarLink
  let vcard_hasCalendarRequest = hasCalendarRequest
  let vcard_hasCategory = hasCategory
  let vcard_hasCountryName = hasCountryName
  let vcard_hasEmail = hasEmail
  let vcard_hasFN = hasFN
  let vcard_hasFamilyName = hasFamilyName
  let vcard_hasGender = hasGender
  let vcard_hasGeo = hasGeo
  let vcard_hasGivenName = hasGivenName
  let vcard_hasHonorificPrefix = hasHonorificPrefix
  let vcard_hasHonorificSuffix = hasHonorificSuffix
  let vcard_hasInstantMessage = hasInstantMessage
  let vcard_hasKey = hasKey
  let vcard_hasLanguage = hasLanguage
  let vcard_hasLocality = hasLocality
  let vcard_hasLogo = hasLogo
  let vcard_hasMember = hasMember
  let vcard_hasName = hasName
  let vcard_hasNickname = hasNickname
  let vcard_hasNote = hasNote
  let vcard_hasOrganizationName = hasOrganizationName
  let vcard_hasOrganizationUnit = hasOrganizationUnit
  let vcard_hasPhoto = hasPhoto
  let vcard_hasPostalCode = hasPostalCode
  let vcard_hasRegion = hasRegion
  let vcard_hasRelated = hasRelated
  let vcard_hasRole = hasRole
  let vcard_hasSound = hasSound
  let vcard_hasSource = hasSource
  let vcard_hasStreetAddress = hasStreetAddress
  let vcard_hasTelephone = hasTelephone
  let vcard_hasTitle = hasTitle
  let vcard_hasUID = hasUID
  let vcard_hasURL = hasURL
  let vcard_hasValue = hasValue
  let vcard_honorific_prefix = honorific_prefix
  let vcard_honorific_suffix = honorific_suffix
  let vcard_key = key
  let vcard_label = label
  let vcard_language = language
  let vcard_latitude = latitude
  let vcard_locality = locality
  let vcard_logo = logo
  let vcard_longitude = longitude
  let vcard_mailer = mailer
  let vcard_n = n
  let vcard_nickname = nickname
  let vcard_note = note
  let vcard_org = org
  let vcard_organization_name = organization_name
  let vcard_organization_unit = organization_unit
  let vcard_photo = photo
  let vcard_post_office_box = post_office_box
  let vcard_postal_code = postal_code
  let vcard_prodid = prodid
  let vcard_region = region
  let vcard_rev = rev
  let vcard_role = role
  let vcard_sort_string = sort_string
  let vcard_sound = sound
  let vcard_street_address = street_address
  let vcard_tel = tel
  let vcard_title = title
  let vcard_tz = tz
  let vcard_url = url
  let vcard_value = value
end

class from ?sub g =
  let sub = match sub with None -> Term.Iri (g.Graph.name()) | Some t -> t in
  object(self)
  method additional_name = Graph.literal_objects_of g ~sub ~pred: additional_name
  method additional_name_opt = match self#additional_name with [] -> None | x::_ -> Some x
  method adr = g.Graph.objects_of ~sub ~pred: adr
  method adr_opt = match self#adr with [] -> None | x::_ -> Some x
  method adr_iris = Graph.only_iris (self#adr)
  method adr_opt_iri = match self#adr_iris with [] -> None | x::_ -> Some x
  method agent = g.Graph.objects_of ~sub ~pred: agent
  method agent_opt = match self#agent with [] -> None | x::_ -> Some x
  method agent_iris = Graph.only_iris (self#agent)
  method agent_opt_iri = match self#agent_iris with [] -> None | x::_ -> Some x
  method anniversary = Graph.literal_objects_of g ~sub ~pred: anniversary
  method anniversary_opt = match self#anniversary with [] -> None | x::_ -> Some x
  method bday = Graph.literal_objects_of g ~sub ~pred: bday
  method bday_opt = match self#bday with [] -> None | x::_ -> Some x
  method category = Graph.literal_objects_of g ~sub ~pred: category
  method category_opt = match self#category with [] -> None | x::_ -> Some x
  method class_ = Graph.literal_objects_of g ~sub ~pred: class_
  method class__opt = match self#class_ with [] -> None | x::_ -> Some x
  method country_name = Graph.literal_objects_of g ~sub ~pred: country_name
  method country_name_opt = match self#country_name with [] -> None | x::_ -> Some x
  method email = g.Graph.objects_of ~sub ~pred: email
  method email_opt = match self#email with [] -> None | x::_ -> Some x
  method email_iris = Graph.only_iris (self#email)
  method email_opt_iri = match self#email_iris with [] -> None | x::_ -> Some x
  method extended_address = Graph.literal_objects_of g ~sub ~pred: extended_address
  method extended_address_opt = match self#extended_address with [] -> None | x::_ -> Some x
  method family_name = Graph.literal_objects_of g ~sub ~pred: family_name
  method family_name_opt = match self#family_name with [] -> None | x::_ -> Some x
  method fn = Graph.literal_objects_of g ~sub ~pred: fn
  method fn_opt = match self#fn with [] -> None | x::_ -> Some x
  method geo = g.Graph.objects_of ~sub ~pred: geo
  method geo_opt = match self#geo with [] -> None | x::_ -> Some x
  method geo_iris = Graph.only_iris (self#geo)
  method geo_opt_iri = match self#geo_iris with [] -> None | x::_ -> Some x
  method given_name = Graph.literal_objects_of g ~sub ~pred: given_name
  method given_name_opt = match self#given_name with [] -> None | x::_ -> Some x
  method hasAdditionalName = g.Graph.objects_of ~sub ~pred: hasAdditionalName
  method hasAdditionalName_opt = match self#hasAdditionalName with [] -> None | x::_ -> Some x
  method hasAdditionalName_iris = Graph.only_iris (self#hasAdditionalName)
  method hasAdditionalName_opt_iri = match self#hasAdditionalName_iris with [] -> None | x::_ -> Some x
  method hasAddress = g.Graph.objects_of ~sub ~pred: hasAddress
  method hasAddress_opt = match self#hasAddress with [] -> None | x::_ -> Some x
  method hasAddress_iris = Graph.only_iris (self#hasAddress)
  method hasAddress_opt_iri = match self#hasAddress_iris with [] -> None | x::_ -> Some x
  method hasCalendarBusy = g.Graph.objects_of ~sub ~pred: hasCalendarBusy
  method hasCalendarBusy_opt = match self#hasCalendarBusy with [] -> None | x::_ -> Some x
  method hasCalendarBusy_iris = Graph.only_iris (self#hasCalendarBusy)
  method hasCalendarBusy_opt_iri = match self#hasCalendarBusy_iris with [] -> None | x::_ -> Some x
  method hasCalendarLink = g.Graph.objects_of ~sub ~pred: hasCalendarLink
  method hasCalendarLink_opt = match self#hasCalendarLink with [] -> None | x::_ -> Some x
  method hasCalendarLink_iris = Graph.only_iris (self#hasCalendarLink)
  method hasCalendarLink_opt_iri = match self#hasCalendarLink_iris with [] -> None | x::_ -> Some x
  method hasCalendarRequest = g.Graph.objects_of ~sub ~pred: hasCalendarRequest
  method hasCalendarRequest_opt = match self#hasCalendarRequest with [] -> None | x::_ -> Some x
  method hasCalendarRequest_iris = Graph.only_iris (self#hasCalendarRequest)
  method hasCalendarRequest_opt_iri = match self#hasCalendarRequest_iris with [] -> None | x::_ -> Some x
  method hasCategory = g.Graph.objects_of ~sub ~pred: hasCategory
  method hasCategory_opt = match self#hasCategory with [] -> None | x::_ -> Some x
  method hasCategory_iris = Graph.only_iris (self#hasCategory)
  method hasCategory_opt_iri = match self#hasCategory_iris with [] -> None | x::_ -> Some x
  method hasCountryName = g.Graph.objects_of ~sub ~pred: hasCountryName
  method hasCountryName_opt = match self#hasCountryName with [] -> None | x::_ -> Some x
  method hasCountryName_iris = Graph.only_iris (self#hasCountryName)
  method hasCountryName_opt_iri = match self#hasCountryName_iris with [] -> None | x::_ -> Some x
  method hasEmail = g.Graph.objects_of ~sub ~pred: hasEmail
  method hasEmail_opt = match self#hasEmail with [] -> None | x::_ -> Some x
  method hasEmail_iris = Graph.only_iris (self#hasEmail)
  method hasEmail_opt_iri = match self#hasEmail_iris with [] -> None | x::_ -> Some x
  method hasFN = g.Graph.objects_of ~sub ~pred: hasFN
  method hasFN_opt = match self#hasFN with [] -> None | x::_ -> Some x
  method hasFN_iris = Graph.only_iris (self#hasFN)
  method hasFN_opt_iri = match self#hasFN_iris with [] -> None | x::_ -> Some x
  method hasFamilyName = g.Graph.objects_of ~sub ~pred: hasFamilyName
  method hasFamilyName_opt = match self#hasFamilyName with [] -> None | x::_ -> Some x
  method hasFamilyName_iris = Graph.only_iris (self#hasFamilyName)
  method hasFamilyName_opt_iri = match self#hasFamilyName_iris with [] -> None | x::_ -> Some x
  method hasGender = g.Graph.objects_of ~sub ~pred: hasGender
  method hasGender_opt = match self#hasGender with [] -> None | x::_ -> Some x
  method hasGender_iris = Graph.only_iris (self#hasGender)
  method hasGender_opt_iri = match self#hasGender_iris with [] -> None | x::_ -> Some x
  method hasGeo = g.Graph.objects_of ~sub ~pred: hasGeo
  method hasGeo_opt = match self#hasGeo with [] -> None | x::_ -> Some x
  method hasGeo_iris = Graph.only_iris (self#hasGeo)
  method hasGeo_opt_iri = match self#hasGeo_iris with [] -> None | x::_ -> Some x
  method hasGivenName = g.Graph.objects_of ~sub ~pred: hasGivenName
  method hasGivenName_opt = match self#hasGivenName with [] -> None | x::_ -> Some x
  method hasGivenName_iris = Graph.only_iris (self#hasGivenName)
  method hasGivenName_opt_iri = match self#hasGivenName_iris with [] -> None | x::_ -> Some x
  method hasHonorificPrefix = g.Graph.objects_of ~sub ~pred: hasHonorificPrefix
  method hasHonorificPrefix_opt = match self#hasHonorificPrefix with [] -> None | x::_ -> Some x
  method hasHonorificPrefix_iris = Graph.only_iris (self#hasHonorificPrefix)
  method hasHonorificPrefix_opt_iri = match self#hasHonorificPrefix_iris with [] -> None | x::_ -> Some x
  method hasHonorificSuffix = g.Graph.objects_of ~sub ~pred: hasHonorificSuffix
  method hasHonorificSuffix_opt = match self#hasHonorificSuffix with [] -> None | x::_ -> Some x
  method hasHonorificSuffix_iris = Graph.only_iris (self#hasHonorificSuffix)
  method hasHonorificSuffix_opt_iri = match self#hasHonorificSuffix_iris with [] -> None | x::_ -> Some x
  method hasInstantMessage = g.Graph.objects_of ~sub ~pred: hasInstantMessage
  method hasInstantMessage_opt = match self#hasInstantMessage with [] -> None | x::_ -> Some x
  method hasInstantMessage_iris = Graph.only_iris (self#hasInstantMessage)
  method hasInstantMessage_opt_iri = match self#hasInstantMessage_iris with [] -> None | x::_ -> Some x
  method hasKey = g.Graph.objects_of ~sub ~pred: hasKey
  method hasKey_opt = match self#hasKey with [] -> None | x::_ -> Some x
  method hasKey_iris = Graph.only_iris (self#hasKey)
  method hasKey_opt_iri = match self#hasKey_iris with [] -> None | x::_ -> Some x
  method hasLanguage = g.Graph.objects_of ~sub ~pred: hasLanguage
  method hasLanguage_opt = match self#hasLanguage with [] -> None | x::_ -> Some x
  method hasLanguage_iris = Graph.only_iris (self#hasLanguage)
  method hasLanguage_opt_iri = match self#hasLanguage_iris with [] -> None | x::_ -> Some x
  method hasLocality = g.Graph.objects_of ~sub ~pred: hasLocality
  method hasLocality_opt = match self#hasLocality with [] -> None | x::_ -> Some x
  method hasLocality_iris = Graph.only_iris (self#hasLocality)
  method hasLocality_opt_iri = match self#hasLocality_iris with [] -> None | x::_ -> Some x
  method hasLogo = g.Graph.objects_of ~sub ~pred: hasLogo
  method hasLogo_opt = match self#hasLogo with [] -> None | x::_ -> Some x
  method hasLogo_iris = Graph.only_iris (self#hasLogo)
  method hasLogo_opt_iri = match self#hasLogo_iris with [] -> None | x::_ -> Some x
  method hasMember = g.Graph.objects_of ~sub ~pred: hasMember
  method hasMember_opt = match self#hasMember with [] -> None | x::_ -> Some x
  method hasMember_iris = Graph.only_iris (self#hasMember)
  method hasMember_opt_iri = match self#hasMember_iris with [] -> None | x::_ -> Some x
  method hasName = g.Graph.objects_of ~sub ~pred: hasName
  method hasName_opt = match self#hasName with [] -> None | x::_ -> Some x
  method hasName_iris = Graph.only_iris (self#hasName)
  method hasName_opt_iri = match self#hasName_iris with [] -> None | x::_ -> Some x
  method hasNickname = g.Graph.objects_of ~sub ~pred: hasNickname
  method hasNickname_opt = match self#hasNickname with [] -> None | x::_ -> Some x
  method hasNickname_iris = Graph.only_iris (self#hasNickname)
  method hasNickname_opt_iri = match self#hasNickname_iris with [] -> None | x::_ -> Some x
  method hasNote = g.Graph.objects_of ~sub ~pred: hasNote
  method hasNote_opt = match self#hasNote with [] -> None | x::_ -> Some x
  method hasNote_iris = Graph.only_iris (self#hasNote)
  method hasNote_opt_iri = match self#hasNote_iris with [] -> None | x::_ -> Some x
  method hasOrganizationName = g.Graph.objects_of ~sub ~pred: hasOrganizationName
  method hasOrganizationName_opt = match self#hasOrganizationName with [] -> None | x::_ -> Some x
  method hasOrganizationName_iris = Graph.only_iris (self#hasOrganizationName)
  method hasOrganizationName_opt_iri = match self#hasOrganizationName_iris with [] -> None | x::_ -> Some x
  method hasOrganizationUnit = g.Graph.objects_of ~sub ~pred: hasOrganizationUnit
  method hasOrganizationUnit_opt = match self#hasOrganizationUnit with [] -> None | x::_ -> Some x
  method hasOrganizationUnit_iris = Graph.only_iris (self#hasOrganizationUnit)
  method hasOrganizationUnit_opt_iri = match self#hasOrganizationUnit_iris with [] -> None | x::_ -> Some x
  method hasPhoto = g.Graph.objects_of ~sub ~pred: hasPhoto
  method hasPhoto_opt = match self#hasPhoto with [] -> None | x::_ -> Some x
  method hasPhoto_iris = Graph.only_iris (self#hasPhoto)
  method hasPhoto_opt_iri = match self#hasPhoto_iris with [] -> None | x::_ -> Some x
  method hasPostalCode = g.Graph.objects_of ~sub ~pred: hasPostalCode
  method hasPostalCode_opt = match self#hasPostalCode with [] -> None | x::_ -> Some x
  method hasPostalCode_iris = Graph.only_iris (self#hasPostalCode)
  method hasPostalCode_opt_iri = match self#hasPostalCode_iris with [] -> None | x::_ -> Some x
  method hasRegion = g.Graph.objects_of ~sub ~pred: hasRegion
  method hasRegion_opt = match self#hasRegion with [] -> None | x::_ -> Some x
  method hasRegion_iris = Graph.only_iris (self#hasRegion)
  method hasRegion_opt_iri = match self#hasRegion_iris with [] -> None | x::_ -> Some x
  method hasRelated = g.Graph.objects_of ~sub ~pred: hasRelated
  method hasRelated_opt = match self#hasRelated with [] -> None | x::_ -> Some x
  method hasRelated_iris = Graph.only_iris (self#hasRelated)
  method hasRelated_opt_iri = match self#hasRelated_iris with [] -> None | x::_ -> Some x
  method hasRole = g.Graph.objects_of ~sub ~pred: hasRole
  method hasRole_opt = match self#hasRole with [] -> None | x::_ -> Some x
  method hasRole_iris = Graph.only_iris (self#hasRole)
  method hasRole_opt_iri = match self#hasRole_iris with [] -> None | x::_ -> Some x
  method hasSound = g.Graph.objects_of ~sub ~pred: hasSound
  method hasSound_opt = match self#hasSound with [] -> None | x::_ -> Some x
  method hasSound_iris = Graph.only_iris (self#hasSound)
  method hasSound_opt_iri = match self#hasSound_iris with [] -> None | x::_ -> Some x
  method hasSource = g.Graph.objects_of ~sub ~pred: hasSource
  method hasSource_opt = match self#hasSource with [] -> None | x::_ -> Some x
  method hasSource_iris = Graph.only_iris (self#hasSource)
  method hasSource_opt_iri = match self#hasSource_iris with [] -> None | x::_ -> Some x
  method hasStreetAddress = g.Graph.objects_of ~sub ~pred: hasStreetAddress
  method hasStreetAddress_opt = match self#hasStreetAddress with [] -> None | x::_ -> Some x
  method hasStreetAddress_iris = Graph.only_iris (self#hasStreetAddress)
  method hasStreetAddress_opt_iri = match self#hasStreetAddress_iris with [] -> None | x::_ -> Some x
  method hasTelephone = g.Graph.objects_of ~sub ~pred: hasTelephone
  method hasTelephone_opt = match self#hasTelephone with [] -> None | x::_ -> Some x
  method hasTelephone_iris = Graph.only_iris (self#hasTelephone)
  method hasTelephone_opt_iri = match self#hasTelephone_iris with [] -> None | x::_ -> Some x
  method hasTitle = g.Graph.objects_of ~sub ~pred: hasTitle
  method hasTitle_opt = match self#hasTitle with [] -> None | x::_ -> Some x
  method hasTitle_iris = Graph.only_iris (self#hasTitle)
  method hasTitle_opt_iri = match self#hasTitle_iris with [] -> None | x::_ -> Some x
  method hasUID = g.Graph.objects_of ~sub ~pred: hasUID
  method hasUID_opt = match self#hasUID with [] -> None | x::_ -> Some x
  method hasUID_iris = Graph.only_iris (self#hasUID)
  method hasUID_opt_iri = match self#hasUID_iris with [] -> None | x::_ -> Some x
  method hasURL = g.Graph.objects_of ~sub ~pred: hasURL
  method hasURL_opt = match self#hasURL with [] -> None | x::_ -> Some x
  method hasURL_iris = Graph.only_iris (self#hasURL)
  method hasURL_opt_iri = match self#hasURL_iris with [] -> None | x::_ -> Some x
  method hasValue = g.Graph.objects_of ~sub ~pred: hasValue
  method hasValue_opt = match self#hasValue with [] -> None | x::_ -> Some x
  method hasValue_iris = Graph.only_iris (self#hasValue)
  method hasValue_opt_iri = match self#hasValue_iris with [] -> None | x::_ -> Some x
  method honorific_prefix = Graph.literal_objects_of g ~sub ~pred: honorific_prefix
  method honorific_prefix_opt = match self#honorific_prefix with [] -> None | x::_ -> Some x
  method honorific_suffix = Graph.literal_objects_of g ~sub ~pred: honorific_suffix
  method honorific_suffix_opt = match self#honorific_suffix with [] -> None | x::_ -> Some x
  method key = g.Graph.objects_of ~sub ~pred: key
  method key_opt = match self#key with [] -> None | x::_ -> Some x
  method key_iris = Graph.only_iris (self#key)
  method key_opt_iri = match self#key_iris with [] -> None | x::_ -> Some x
  method label = Graph.literal_objects_of g ~sub ~pred: label
  method label_opt = match self#label with [] -> None | x::_ -> Some x
  method language = Graph.literal_objects_of g ~sub ~pred: language
  method language_opt = match self#language 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 locality = Graph.literal_objects_of g ~sub ~pred: locality
  method locality_opt = match self#locality with [] -> None | x::_ -> Some x
  method logo = g.Graph.objects_of ~sub ~pred: logo
  method logo_opt = match self#logo with [] -> None | x::_ -> Some x
  method logo_iris = Graph.only_iris (self#logo)
  method logo_opt_iri = match self#logo_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 mailer = Graph.literal_objects_of g ~sub ~pred: mailer
  method mailer_opt = match self#mailer with [] -> None | x::_ -> Some x
  method n = g.Graph.objects_of ~sub ~pred: n
  method n_opt = match self#n with [] -> None | x::_ -> Some x
  method n_iris = Graph.only_iris (self#n)
  method n_opt_iri = match self#n_iris with [] -> None | x::_ -> Some x
  method nickname = Graph.literal_objects_of g ~sub ~pred: nickname
  method nickname_opt = match self#nickname with [] -> None | x::_ -> Some x
  method note = Graph.literal_objects_of g ~sub ~pred: note
  method note_opt = match self#note with [] -> None | x::_ -> Some x
  method org = g.Graph.objects_of ~sub ~pred: org
  method org_opt = match self#org with [] -> None | x::_ -> Some x
  method org_iris = Graph.only_iris (self#org)
  method org_opt_iri = match self#org_iris with [] -> None | x::_ -> Some x
  method organization_name = Graph.literal_objects_of g ~sub ~pred: organization_name
  method organization_name_opt = match self#organization_name with [] -> None | x::_ -> Some x
  method organization_unit = Graph.literal_objects_of g ~sub ~pred: organization_unit
  method organization_unit_opt = match self#organization_unit with [] -> None | x::_ -> Some x
  method photo = g.Graph.objects_of ~sub ~pred: photo
  method photo_opt = match self#photo with [] -> None | x::_ -> Some x
  method photo_iris = Graph.only_iris (self#photo)
  method photo_opt_iri = match self#photo_iris with [] -> None | x::_ -> Some x
  method post_office_box = Graph.literal_objects_of g ~sub ~pred: post_office_box
  method post_office_box_opt = match self#post_office_box with [] -> None | x::_ -> Some x
  method postal_code = Graph.literal_objects_of g ~sub ~pred: postal_code
  method postal_code_opt = match self#postal_code with [] -> None | x::_ -> Some x
  method prodid = Graph.literal_objects_of g ~sub ~pred: prodid
  method prodid_opt = match self#prodid with [] -> None | x::_ -> Some x
  method region = Graph.literal_objects_of g ~sub ~pred: region
  method region_opt = match self#region with [] -> None | x::_ -> Some x
  method rev = Graph.literal_objects_of g ~sub ~pred: rev
  method rev_opt = match self#rev with [] -> None | x::_ -> Some x
  method role = Graph.literal_objects_of g ~sub ~pred: role
  method role_opt = match self#role with [] -> None | x::_ -> Some x
  method sort_string = Graph.literal_objects_of g ~sub ~pred: sort_string
  method sort_string_opt = match self#sort_string with [] -> None | x::_ -> Some x
  method sound = g.Graph.objects_of ~sub ~pred: sound
  method sound_opt = match self#sound with [] -> None | x::_ -> Some x
  method sound_iris = Graph.only_iris (self#sound)
  method sound_opt_iri = match self#sound_iris with [] -> None | x::_ -> Some x
  method street_address = Graph.literal_objects_of g ~sub ~pred: street_address
  method street_address_opt = match self#street_address with [] -> None | x::_ -> Some x
  method tel = g.Graph.objects_of ~sub ~pred: tel
  method tel_opt = match self#tel with [] -> None | x::_ -> Some x
  method tel_iris = Graph.only_iris (self#tel)
  method tel_opt_iri = match self#tel_iris with [] -> None | x::_ -> Some x
  method title = Graph.literal_objects_of g ~sub ~pred: title
  method title_opt = match self#title with [] -> None | x::_ -> Some x
  method tz = Graph.literal_objects_of g ~sub ~pred: tz
  method tz_opt = match self#tz 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 value = Graph.literal_objects_of g ~sub ~pred: value
  method value_opt = match self#value with [] -> None | x::_ -> Some x
  end
