Suche nach Namen in rdf / n3 Datei

Ich muss eine Filterung in einer Schildkröte / n3-Datei durchführen und eine andere Datei der gleichen Art zurückgeben. Das grundlegende Datenelement (Ort), an dem ich arbeite, ist das:

:pt0001 vcard:category "Poste e Telegrafi" ; vcard:fn "Ufficio Bologna 1" ; vcard:extended-address "Via Cairoli 9, Bologna BO, Italy" ; vcard:latitude "44.504192" ; vcard:longitude "11.338661" ; vcard:tel "051 243425" ; vcard:fax "051 244459" ; cs:opening "Mon, Tue, Wed, Thu, Fri: 0800-1330. Sat: 0800-1230." ; cs:closing "01-01, 01-06, P, LA, 04-25, 05-01, 06-02, 08-15, 11-01, 12-08, 12-25, 12-26: .". 

Ich möchte zum Beispiel nach Elementen (ptxxxx) suchen, die einen bestimmten Namen oder Breitengrad oder eine bestimmte Kategorie haben. Ich habe schon geraten, Konstrukt in der Abfrage zu verwenden, um Triple aus dem rdf abzurufen, also kann ich sie zu einer neuen Grafik / rdf hinzufügen, die ich baue. Die Tatsache ist, dass, wenn ich über Triples filtern, um nach (Groß- und Kleinschreibung) Namen mit der Regex-Filterfunktion zu suchen, bekomme ich nur ein Triple, das in diesem Fall den Namen definiert, den ich gesucht habe. Ist es möglich, nach dem Betreff (ptxxxx) zu suchen, dessen Name (Prädikat) "Ufficio Bologna 1" (Objekt) ist?

  • Wie man matplotlib zwingt, nur ganze Zahlen auf der Y-Achse anzuzeigen
  • Wie man C # .read (Puffer, 0, buffer.Length) in Python repliziert
  • Übergeben von Objekten von Django zu Javascript DOM
  • Wie gut geht es los?
  • Unicode-Fehler beim Speichern eines Objekts in django admin
  • Indexierung / Slicing in numpy Array, um es zu ändern
  • Wie man mit dem Aufbau einer Mac-Anwendung beginnt?
  • GCC-Fehler: Befehl 'gcc-4.0' fehlgeschlagen mit Exit-Status 1
  • Wie funktioniert das asynchrone Training im verteilten Tensorflow?
  • Unerwartetes Ende des regulären Ausdrucks
  • Wie man dict Elemente zu summen
  • IOError: "decoder zip nicht verfügbar" mit matplotlib PNG in ReportLab unter Linux, funktioniert unter Windows
  • 2 Solutions collect form web for “Suche nach Namen in rdf / n3 Datei”

    Wenn du die Triples für das Thema bekommen möchtest, das diesen Namen genau hat, kannst du einfach einen beschreiben:

     describe ?s where { ?s vcard:fn "Ufficio Bologna 1". } 

    Andernfalls, wenn du einen Regex verwenden möchtest, kannst du die Abfrage leicht ändern

     describe ?s where { ?s vcard:fn ? name. filter (regex(?name, "regex goes here")). } 

    Obwohl ein Wort der Vorsicht, regex über große Datasets kann teuer sein. Viele Systeme bieten Erweiterungen für SPARQL, die Volltext-Index Ihre wörtlichen Werte, die Sie dann über eine normale Suche Syntax suchen können.

    Ich habe so gelöst:

     CONSTRUCT {?s ?p ?o} WHERE { ?s ?p ?o; vcard:fn ?name. FILTER regex (?name ,"^ufficio bologna 1$", "i") } 
    Python ist die beste Programmiersprache der Welt.