PREFIX gesli: PREFIX rdfs: SELECT DISTINCT ?partnerName ?partnerRole ?partnerType ?country ?region ?serviceCity ?servicePort ?businessRegistrationNo ?taxNo ?isActivePartner ?contactName ?contactRole ?phone WHERE { ?partner a/rdfs:subClassOf* gesli:BusinessPartner ; rdfs:label ?partnerName . OPTIONAL { ?partner gesli:platformSupplierType ?partnerType . } OPTIONAL { ?partner gesli:serviceCity ?serviceCity . } OPTIONAL { ?partner gesli:servicePort ?servicePort . } OPTIONAL { ?partner a/rdfs:subClassOf* gesli:Customer . BIND("客户" AS ?customerRole) } OPTIONAL { ?partner a/rdfs:subClassOf* gesli:Supplier . BIND("平台供应商" AS ?supplierRole) } OPTIONAL { ?partner gesli:hasBusinessPartnerBasicInfo ?basic . OPTIONAL { ?basic gesli:businessPartnerRole ?basicPartnerRole . } OPTIONAL { ?basic gesli:country ?country . } OPTIONAL { ?basic gesli:region ?region . } OPTIONAL { ?basic gesli:businessRegistrationNo ?businessRegistrationNo . } OPTIONAL { ?basic gesli:taxNo ?taxNo . } OPTIONAL { ?basic gesli:isActivePartner ?isActivePartner . } } OPTIONAL { ?partner gesli:hasBusinessPartnerContact ?contact . OPTIONAL { ?contact gesli:contactName ?contactName . } OPTIONAL { ?contact gesli:contactRole ?contactRole . } OPTIONAL { ?contact gesli:phone ?phone . } } BIND(COALESCE(?basicPartnerRole, ?customerRole, ?supplierRole) AS ?partnerRole) } ORDER BY ?partnerRole ?partnerType ?partnerName