0

我正在使用rdflib将文本文件转换为 n3 文件,以保存公交车站位置(GTFS)。例如,如果我们有 latitude=8.0,longitude=5.0.The 文字将是:

POINT(5.0 8.0)”^^< http://www.openlinksw.com/schemas/virtrdf#Geometry >。

现在我的代码(对于我从文本文件中读取的每一行)看起来像这样,我只是将纬度、经度保存为浮点 xsd 数据类型。我们在图形(g)中添加每一行。

data = fd.readline()
        data = re.split(',', data)

        row = {
          "stop_id": data[0] ,
          "stop_code": data[1] ,
          "stop_name": data[2].replace('"', '') ,
          "stop_desc": data[3] ,
          "stop_lat": data[4] ,
          "stop_lon": data[5] ,
          "location_type": data[6]
        }

        # Create a node for our movie
        stop_node = n['Stop/' + row['stop_id']] # Unique URI
        class_node = n['Stop']
        g.add((stop_node, n.HasStopId, Literal(row['stop_id'],datatype=XSD.int)))
        g.add((stop_node, n.HasStopCode, Literal(row['stop_code'],datatype=XSD.int)))
        g.add((stop_node, n.HasStopName , Literal(row['stop_name'],datatype=XSD.string)))
        g.add((stop_node, n.HasStopDesc, Literal(row['stop_desc'],  datatype=XSD.string)))
        g.add((stop_node, n.HasStopLat, Literal(row['stop_lat'], datatype=XSD.float)))
        g.add((stop_node, n.HasStopLon, Literal(row['stop_lon'], datatype=XSD.float)))
        g.add((stop_node, n.HasLocationType, Literal(row['location_type'], datatype=XSD.int)))
        g.add((stop_node, RDF.type, class_node))

输出示例:

@prefix ns1: <http://www.stops.org/> .//I have defined that in another file,not important
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://www.stops.org/Stop/01034> a ns1:Stop ;
    ns1:HasLocationType "0"^^xsd:int ;
    ns1:HasStopCode "10001"^^xsd:int ;
    ns1:HasStopDesc "Outside National Hospital"^^xsd:string ;
    ns1:HasStopId "01034"^^xsd:int ;
    ns1:HasStopLat "8.0"^^xsd:float ;
    ns1:HasStopLon "5.0"^^xsd:float ;
    ns1:HasStopName "turn hospital"^^xsd:string .

  

如果我使用 open link virtuoso将我的 n3 文件导入到它的数据库中,我得到了指示两个浮点值),然后将其转换为开放链接大师中的几何点,或者我是否会将值转换为 python 使用 rdflib 生成的 n3 文件中的几何点。我在互联网上找不到其他相关内容。

4

0 回答 0