basic_check.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from pathlib import Path
  2. ROOT = Path(__file__).resolve().parents[1]
  3. def main():
  4. required = [
  5. "README.md",
  6. "docker-compose.yml",
  7. "ontology/global-shipment.ttl",
  8. "data/qingdao-export-sample.ttl",
  9. "queries/order-status.rq",
  10. "queries/risk-orders.rq",
  11. "queries/supplier-product-quotes.rq",
  12. "queries/product-performance.rq",
  13. "queries/ai-market-recommended-prices.rq",
  14. "queries/supplier-share-governance.rq",
  15. "app/main.py",
  16. ]
  17. for path in required:
  18. if not (ROOT / path).exists():
  19. raise SystemExit(f"缺少文件: {path}")
  20. ontology = (ROOT / "ontology/global-shipment.ttl").read_text(encoding="utf-8")
  21. sample = (ROOT / "data/qingdao-export-sample.ttl").read_text(encoding="utf-8")
  22. required_terms = [
  23. "gesli:GlobalShipmentOntology",
  24. "gesli:ServiceBrand",
  25. "gesli:ServiceProduct",
  26. "gesli:ProductPerformanceProfile",
  27. "gesli:SupplierProductOffering",
  28. "gesli:ScheduledServiceInstance",
  29. "gesli:SolutionPlan",
  30. "gesli:AIRecommendedPrice",
  31. "gesli:SupplierShareGovernanceStrategy",
  32. ]
  33. for term in required_terms:
  34. if term not in ontology:
  35. raise SystemExit(f"本体缺少核心定义: {term}")
  36. count = sample.count("a gesli:QingdaoExportOrder")
  37. if count < 2:
  38. raise SystemExit("样本订单不足。")
  39. offering_count = sample.count("a gesli:SupplierProductOffering")
  40. if offering_count < 5:
  41. raise SystemExit("供应商产品关系样本不足。")
  42. if "sample:Maersk a gesli:Carrier" in sample:
  43. raise SystemExit("马士基品牌仍被错误建模为平台供应商。")
  44. print(
  45. f"基础检查通过。当前有 {count} 票青岛出口样本订单,"
  46. f"{offering_count} 条供应商产品关系。"
  47. )
  48. if __name__ == "__main__":
  49. main()