business-partner-contacts.rq 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. PREFIX gesli: <https://gesli.example/ontology#>
  2. PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
  3. SELECT ?partnerName ?partnerRole ?partnerType ?contactName ?contactRole
  4. ?phone ?socialAccountType ?socialAccountNo
  5. WHERE {
  6. ?partner a/rdfs:subClassOf* gesli:BusinessPartner ;
  7. rdfs:label ?partnerName ;
  8. gesli:hasBusinessPartnerContact ?contact .
  9. OPTIONAL { ?partner gesli:platformSupplierType ?partnerType . }
  10. OPTIONAL {
  11. ?partner gesli:hasBusinessPartnerBasicInfo ?basic .
  12. OPTIONAL { ?basic gesli:businessPartnerRole ?basicPartnerRole . }
  13. }
  14. OPTIONAL {
  15. ?partner a/rdfs:subClassOf* gesli:Customer .
  16. BIND("客户" AS ?customerRole)
  17. }
  18. OPTIONAL {
  19. ?partner a/rdfs:subClassOf* gesli:Supplier .
  20. BIND("平台供应商" AS ?supplierRole)
  21. }
  22. OPTIONAL { ?contact gesli:contactName ?contactName . }
  23. OPTIONAL { ?contact gesli:contactRole ?contactRole . }
  24. OPTIONAL { ?contact gesli:phone ?phone . }
  25. OPTIONAL { ?contact gesli:socialAccountType ?socialAccountType . }
  26. OPTIONAL { ?contact gesli:socialAccountNo ?socialAccountNo . }
  27. BIND(COALESCE(?basicPartnerRole, ?customerRole, ?supplierRole) AS ?partnerRole)
  28. }
  29. ORDER BY ?partnerRole ?partnerType ?partnerName ?contactRole